读书人

Jquery写的JS在IE8下正常在IE7下就报错

发布时间: 2012-03-24 14:00:46 作者: rapoo

Jquery写的JS在IE8下正常在IE7下就报错???
/*弹出拍照*/
function topDialog(title, width, height, url, color, alpha)
{
var jqTopDialog_DivMaskLayer = getTopDialogDivMaskLayer(color, alpha);
$(window.top.document).find("body").append(jqTopDialog_DivMaskLayer);

var jqTopDialog_DivPanel = getTopDialogDivPanel(title, width, height, url);
$(window.top.document).find("body").append(jqTopDialog_DivPanel);
}

function topDialogClose()
{
$(window.top.document).find("body").find("#TopDialog_DivMaskLayer").remove();
$(window.top.document).find("body").find("#TopDialog_DivPanel").remove();
}

function getTopDialogDivMaskLayer(color, alpha)
{
var jqTopDialog_DivMaskLayer = $(document.createElement("div"));
jqTopDialog_DivMaskLayer.attr("id", "TopDialog_DivMaskLayer");
jqTopDialog_DivMaskLayer.css("position", "absolute");
jqTopDialog_DivMaskLayer.css("z-index", "100000");
jqTopDialog_DivMaskLayer.css("background-color", color);
jqTopDialog_DivMaskLayer.css("top", "0px");
jqTopDialog_DivMaskLayer.css("left", "0px");
jqTopDialog_DivMaskLayer.css("height", window.top.document.body.scrollHeight);
jqTopDialog_DivMaskLayer.css("width", "100%");
jqTopDialog_DivMaskLayer.css("display", "block");
jqTopDialog_DivMaskLayer.css("opacity", alpha);
return jqTopDialog_DivMaskLayer;
}

function getTopDialogDivPanel(title, width, height, url)
{
var jqTopDialog_DivPanel = $(document.createElement("div"));
jqTopDialog_DivPanel.attr("id", "TopDialog_DivPanel");
jqTopDialog_DivPanel.css("position", "absolute");
jqTopDialog_DivPanel.css("z-index", "100001");
jqTopDialog_DivPanel.css("background-color", "#ffffff");
jqTopDialog_DivPanel.css("top", window.top.document.body.scrollHeight / 2 - height / 2);
jqTopDialog_DivPanel.css("left", window.top.document.body.scrollWidth / 2 - width / 2);
jqTopDialog_DivPanel.css("height", height);
jqTopDialog_DivPanel.css("width", width);
jqTopDialog_DivPanel.css("display", "block");


var panelModel = getPanelModel(title, width, height, url);

jqTopDialog_DivPanel.append(panelModel);

return jqTopDialog_DivPanel;
}

function getPanelModel(title, width, height, url)
{
var line_left = $(document.createElement("div"));
line_left.css("background", "url(/Images/topDialog/line_left.gif) no-repeat left top");
line_left.css("width", "100%");

var line_right = $(document.createElement("div"));
line_right.css("background", "url(/Images/topDialog/line_right.gif) no-repeat right top");
line_right.css("padding-right", "3px");


line_right.css("padding-left", "3px");

line_left.append(line_right);

var line_bottom = $(document.createElement("div"));
line_bottom.css("background", "url(/Images/topDialog/line_bottom.gif) repeat-x left bottom");

line_right.append(line_bottom);

var line_top = $(document.createElement("div"));
line_top.css("background", "url(/Images/topDialog/line_top.gif) repeat-x left top");
line_top.css("padding-top", "2px");
line_top.css("padding-bottom", "3px");
line_top.css("text-align", "left");

line_bottom.append(line_top);

var panelHead = $(document.createElement("h1"));
panelHead.css("color", "#FFFFFF");
panelHead.css("padding", "0px 6px 0px 15px");
panelHead.css("margin", "0px 0px 2px auto");
panelHead.css("height", "21px");
panelHead.css("float", "right");
panelHead.css("font-size", "13px");
panelHead.css("line-height", "21px");
panelHead.css("vertical-align", "middle");

line_top.append(panelHead);

var closeLink = $(document.createElement("a"));
closeLink.attr("href", "#");
closeLink.bind("click", function()
{

$(window.top.document).find("body").find("#TopDialog_DivMaskLayer").remove();
$(window.top.document).find("body").find("#TopDialog_DivPanel").remove();
});
closeLink.css("float", "right");

var closeImage = $(document.createElement("img"));
closeImage.attr("src", "/Images/topDialog/shut.gif")
closeImage.attr("border", 0);
closeImage.attr("alt", "关闭窗口");

closeLink.append(closeImage);
var titleText = $(document.createTextNode(title));

panelHead.append(closeLink);
panelHead.append(titleText);

var jqTopDialog_IFrame = getTopDialogIFrame(width, height, url);

line_top.append(jqTopDialog_IFrame);

return line_left;
}

function getTopDialogIFrame(width, height, url)
{
var jqTopDialog_IFrame = $(document.createElement("iframe"));
jqTopDialog_IFrame.attr("id", "TopDialog_IFrame");
jqTopDialog_IFrame.attr("src", url);
jqTopDialog_IFrame.attr("frameborder", 0);
jqTopDialog_IFrame.css("height", height);
jqTopDialog_IFrame.css("width", width);
jqTopDialog_IFrame.css("border", "0px");
return jqTopDialog_IFrame;
}
</script>
----------------------------------------
<input type="button" value="打开" onclick="topDialog('测试测试测试',500,500,'http://www.163.com','#ffffff',0.5)" />


--------------------------
以上是我写的一个JS,在IE8下正常可在IE7下就报错。找了半天也不知道问题出在哪里。寻求正解!!!!!!

[解决办法]
typeof一下传入的参数,是否是一个DOM element。

读书人网 >JavaScript

热点推荐