gpt4 book ai didi

javascript - IE8 在 JavaScript 弹出窗口上奇怪地崩溃

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:47:23 25 4
gpt4 key购买 nike

创建弹出窗口 onclick 后,我遇到了一个奇怪的问题。弹出窗口打开但立即卡在 IE8 上(在包括 IE6 在内的所有其他浏览器上工作正常)。但是在添加 alert 框时,如 JavaScript 代码所示,弹出窗口工作正常。

I am using **https** and not **http** and i feel popup is not able to load the JS file because of SSL.

下面是我如何生成 onclick 事件:

<a id="forgotPasswordLink" href="#" onclick="openSupportPage();"> Some Text </a>

onclick 函数是这样定义的:

        function openSupportPage() {
var features = "width=700,height=400,status=yes,toolbar=no,menubar=no,location=no,scrollbars=yes";
var winId = window.open('', '', features);
winId.focus();
winId.document.open();
winId.document.write('<html><head><title>' + document.title + '</title><link rel="stylesheet" href="./css/default.css" type="text/css">\n');
var is_ie6 = (
window.external && typeof window.XMLHttpRequest == "undefined");
alert(is_ie6);/*The JS include below*/
/*works in popup only with this alert box.*/
/*else IE8 Hangs*/
winId.document.write('<script src="../js/tiny_mce/tiny_mce.js" type="text/javascript">Script_IE8</script>\n');


winId.document.write('<script type="text/javascript">\n');
winId.document.write('function inittextarea() {\n');
winId.document.write('tinyMCE.init({ \n');
winId.document.write('elements : "content",\n');
winId.document.write('theme : "advanced",\n');
winId.document.write('readonly : true,\n');
winId.document.write('mode : "exact",\n');
winId.document.write('theme : "advanced",\n');
winId.document.write('readonly : true,\n');
winId.document.write('setup : function(ed) {\n');
winId.document.write('ed.onInit.add(function() {\n');
winId.document.write('tinyMCE.activeEditor.execCommand("mceToggleVisualAid");\n');
winId.document.write('});\n');
winId.document.write('}\n');
winId.document.write('});}</script>\n');
winId.document.write('</head><body onload="inittextarea()">\n');
winId.document.write(' \n');
var hiddenFrameHTML = document.getElementById("HiddenFrame").innerHTML;
hiddenFrameHTML = hiddenFrameHTML.replace(/&amp;/gi, "&");
hiddenFrameHTML = hiddenFrameHTML.replace(/&lt;/gi, "<");
hiddenFrameHTML = hiddenFrameHTML.replace(/&gt;/gi, ">");
winId.document.write(hiddenFrameHTML);
winId.document.write('<textarea id="content" rows="10" style="width:100%">\n');
winId.document.write(document.getElementById(top.document.forms[0].id + ":supportStuff").innerHTML);
winId.document.write('</textArea>\n');
var hiddenFrameHTML2 = document.getElementById("HiddenFrame2").innerHTML;
hiddenFrameHTML2 = hiddenFrameHTML2.replace(/&amp;/gi, "&");
hiddenFrameHTML2 = hiddenFrameHTML2.replace(/&lt;/gi, "<");
hiddenFrameHTML2 = hiddenFrameHTML2.replace(/&gt;/gi, ">");
winId.document.write(hiddenFrameHTML2);
winId.document.write('</body></html>\n');
winId.document.close();
}

请帮我解决这个问题。如果需要,我可以提供更多相关信息。

I have referred to these posts already:

Additional Information:

最佳答案

这是解决我的问题并在 IE6、IE7、IE8、Chrome、Firefox、Safari 和 Opera 中工作的最终工作函数。

function openSupportPage() {
var features="width=700,height=400,status=yes,toolbar=no,menubar=no,location=no,scrollbars=yes";
var winId=window.open('','',features);
winId.document.open();
winId.document.write('<html><head><title>' + document.title + '</title><link rel="stylesheet" href="../css/default.css" type="text/css">\n');

window.setTimeout(function () {
winId.document.write(
'<script src="../js/tiny_mce/tiny_mce.js" type="text/javascript"></scr' + 'ipt>\n'
);
}, 10);

winId.document.write('<script type="text/javascript">\n');
winId.document.write('function inittextarea() {\n');
winId.document.write('tinyMCE.init({ \n');
winId.document.write('elements : "content",\n');
winId.document.write('theme : "advanced",\n');
winId.document.write('readonly : true,\n');
winId.document.write('mode : "exact",\n');
winId.document.write('theme : "advanced",\n');
winId.document.write('readonly : true,\n');
winId.document.write('setup : function(ed) {\n');
winId.document.write('ed.onInit.add(function() {\n');
winId.document.write('tinyMCE.activeEditor.execCommand("mceToggleVisualAid");\n');
winId.document.write('});\n');
winId.document.write('}\n');
winId.document.write('});}</script>\n');

window.setTimeout(function () {
winId.document.write('</head><body onload="inittextarea()">\n');
winId.document.write(' \n');
var hiddenFrameHTML = document.getElementById("HiddenFrame").innerHTML;
hiddenFrameHTML = hiddenFrameHTML.replace(/&amp;/gi, "&");
hiddenFrameHTML = hiddenFrameHTML.replace(/&lt;/gi, "<");
hiddenFrameHTML = hiddenFrameHTML.replace(/&gt;/gi, ">");
winId.document.write(hiddenFrameHTML);
winId.document.write('<textarea id="content" rows="10" style="width:100%">\n');
winId.document.write(document.getElementById(top.document.forms[0].id + ":supportStuff").innerHTML);
winId.document.write('</textArea>\n');
var hiddenFrameHTML2 = document.getElementById("HiddenFrame2").innerHTML;
hiddenFrameHTML2 = hiddenFrameHTML2.replace(/&amp;/gi, "&");
hiddenFrameHTML2 = hiddenFrameHTML2.replace(/&lt;/gi, "<");
hiddenFrameHTML2 = hiddenFrameHTML2.replace(/&gt;/gi, ">");
//hiddenFrameHTML2 = hiddenFrameHTML2.replace(/&amp;/gi, "&").replace(/&lt;/gi, "<").replace(/&gt;/gi, ">");
winId.document.write(hiddenFrameHTML2);
winId.document.write('</body></html>\n');
winId.document.close();
}, 300);
}

我从这些问题中得到了很多帮助:

谢谢大家

关于javascript - IE8 在 JavaScript 弹出窗口上奇怪地崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2943965/

25 4 0
文章推荐: java - 验证 Apple iOS iTunes 收据;基于 0 或 1 的小时
文章推荐: java - 如何按升序排序 ArrayList android