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

时间:2021-08-24 17:02:57
 /*弹出拍照*/
        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下就报错。找了半天也不知道问题出在哪里。寻求正解!!!!!!

10 个解决方案

#1


没人会还是分太少??怎么一个回复都没?!?

#2


UP

#3


错误是什么呀?

#4


错误是: $(window.top.document).find("body").append(jqTopDialog_DivMaskLayer);
告诉我传入的参数无效,但在IE8 下正常。

#5


UP

#6


UP

#7


我也遇到这种情况,ffheie8完全没有问题,ie7就是不求行。。。

#8


typeof一下传入的参数,是否是一个DOM element。

#9


ie8一下的浏览器的document使用appendChild()时一定要使用这个document对象的createElement方法,否则会提示“参数无效”的错误。

#10


我也出了这个错误,期待中,貌似上面的回复都不行

#1


没人会还是分太少??怎么一个回复都没?!?

#2


UP

#3


错误是什么呀?

#4


错误是: $(window.top.document).find("body").append(jqTopDialog_DivMaskLayer);
告诉我传入的参数无效,但在IE8 下正常。

#5


UP

#6


UP

#7


我也遇到这种情况,ffheie8完全没有问题,ie7就是不求行。。。

#8


typeof一下传入的参数,是否是一个DOM element。

#9


ie8一下的浏览器的document使用appendChild()时一定要使用这个document对象的createElement方法,否则会提示“参数无效”的错误。

#10


我也出了这个错误,期待中,貌似上面的回复都不行