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

2023-12-11

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

我在用**https**并不是**http**我觉得弹出窗口无法加载 JS 文件,因为SSL.

这是我生成的方式onclick event:

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

The 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();
    }

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

我参考过这些帖子 已经:

  • 在IE8中使用http URL导入https页面中的js文件
  • 强制浏览器模式 = IE8 和文档模式 = IE8 标准

附加信息:

  • 页面的屏幕截图
  • 渲染的 HTML
  • 原始JSPF

这是最终的工作功能,它解决了我的问题,并适用于 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 行
  • JavaScript 源文件未在 IE8 弹出窗口中加载

谢谢你们。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IE8 在 JavaScript 弹出窗口上奇怪地崩溃 的相关文章

  • 当代理关闭并启动时,Node JS mqtt 客户端未收到订阅的消息

    我创建了一个 mqtt Node js 客户端 我的连接选项如下 mqttOptions clientId 100 keepAlive 1000 clean false reconnectPeriod 1000 will willMessa
  • HTMLPanel 中的 JavaScript

    我想在 HTMLPanel 元素中包含 Javascript 代码 但它不起作用 请你帮助我好吗 提前致谢 脚本 pro js alert hello 使用 HTMLPANEL 不起作用 不显示警报 我认为应该是相反的 HTMLPanel
  • 如何使用 jQuery 添加/附加到外部 JSON 文件

    我有一个 json 文件 我想构建一个表单 允许我在文件中添加 编辑元素 是否有 jQuery 函数 方法允许我在外部 json 文件中发布和追加元素 不确定这是否有帮助 但当前的 json 结构如下 cast director genre
  • 如何使用react-native-router-flux在模态中进行导航

    我需要在我的反应本机应用程序中的模式中进行导航 使用新版本的react native router flux 似乎不可能做到这一点 我可以创建一个垂直动画来显示下一个场景 这与场景顶部的模态不同
  • 使用 ReactJS 突出显示文本

    我试图突出显示与查询匹配的文本 但我不知道如何让标签显示为 HTML 而不是文本 var Component React createClass highlightQuery function name query var regex ne
  • jquery如何获取右、左、上、下箭头键值

    我使用了下面的代码 每当单击箭头键 左 右 上 下 时 我得到的键值为 0 任何人都可以帮忙解决这个问题吗 document keypress function e alert key value e which 如何获取 上 下 右 左
  • 隐藏加载失败的图片

    我有一个 Android 应用程序 它生成一些在本地 Webkit 视图中呈现的 HTML HTML 生成的细节实际上并不那么重要 除了 大部分来自一个地方 我无法改变它 HTML 周围的模板 包括页眉 页脚 HEAD 等 CSS 和 Ja
  • React Native 中的动画背景颜色

    我将如何在 React Native 中将一种颜色动画化为另一种颜色 我发现通过插入 Animated Value 您可以通过以下方式对颜色进行动画处理 var BLACK 0 var RED 1 var BLUE 2 background
  • 如何保证popUp始终显示在PopUpButton上方?有测试用例和截图

    我的 Flex 4 6 Web 应用程序的少数用户抱怨它右下角的 mx controls PopUpButton 有时会打开一个列表下它因此无法使用 我自己无法重现它 可能是他们的 Flash 播放器和 或字体大小设置的不幸组合 我如何确保
  • Javascript:一般访问函数参数

    这是我所拥有的 var log function arg1 arg2 console log inside arg1 arg2 var wrap function fn return function args console log be
  • 浏览器中的javascript:异步任务执行模型

    我正在尝试集中注意力并了解 javascript 异步在单线程浏览器环境中的工作原理 作为异步 我们可以同时处理计时器和 xhr 请求 现在假设我有类似下面的东西 function doStuff for var i 0 i lt 1000
  • 创建一个通用函数以将其用于其他数据

    我正在制作一个项目列表 并希望随着数量变化计算其值 但如何使该函数通用以便我可以将它用于所有行 你能建议一些最好和简单的方法 但请记住我想这样做仅限 JavaScript table thead tr th Name th th Quant
  • 如何从 HTML 图表中删除网址 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在 HTML 中创建一个图表 我正在使用 API amCharts 但问题是它在图表中显示文本 amchart 我怎样才能删除该文本
  • Javascript 搜索并替换包含方括号的字符序列

    我正在尝试在字符串 Nationality EN ESP 中搜索 EN 我想从字符串中删除它 所以我使用替换方法 代码示例如下 var str Nationality EN ESP var find EN var regex new Reg
  • Mustache.js 只允许换行,转义其他 HTML

    我正在根据用户输入创建评论 并在用户单击 提交 后使用 Mustache js 渲染它们 我意识到我可以替换用户输入换行符 n with br 呈现为 HTML 中断 例如 myString replace n g br 我意识到我可以使用
  • 时间序列折线图与轴不同步

    本实验基于这个d3官方例子 http bost ocks org mike path 我想要实现的是可视化时间序列数据的最后 x 分钟 我有这个代码的副本jsfiddle http jsfiddle net 225dC 3 单击以添加新数据
  • 如何使用 JavaScript 使 DIV 可见和不可见?

    你能做类似的事情吗 function showDiv DIV visible true or something 如果 DIV 是一个元素那么 DIV style visibility visible OR DIV style visibi
  • 如何在 AngularJS 中设置选择选项中的文本格式?

    我有以下 json 对象 scope values id 2 code Code 1 name Sample 1 id 4 code Code 2 name Sample 2 id 7 code Code 3 name Sample 3 在
  • 对数滑块

    我有一个值范围从 0 到 100 的滑块 我想将它们映射到 100 到 10 000 000 的范围 我在网上看到过一些函数 但它们都是用 C 编写的 我需要它在 JavaScript 中 有任何想法吗 您可以使用这样的函数 functio
  • ajaxStart() 仅调用一次,但 ajaxComplete() 调用多次

    我想对页面上的每个 AJAX 请求进行调用 I read here http docs jquery com Ajax Events that ajaxStart 全局事件 如果启动 Ajax 请求并且当前没有其他 Ajax 请求正在运行

随机推荐

  • 当另一个 div 打开时,我需要什么代码来折叠另一个 div?

    我使用一段简单的代码来使 div 折叠 就是这样 我需要添加什么代码才能使其识别何时打开一个 div 并折叠前一个 div 这是我要使用的链接 a href Link 1 a
  • 姓名和电子邮件实体的空响应

    我尝试了内置变量 用户 方法 user name and user email在 API AI 的文本响应中 问候用户并显示电子邮件 ID 是否有内置变量名用户 示例 用户使用 Gmail 注册 Response Code I had tr
  • Pytest 模块未找到错误

    即使我使用 Python 工作这么久 我仍然偶尔会遇到包结构的问题 我正在尝试跑步 pipenv run pytest从下面的目录结构的根 即 上面 src src physics init py pathing py road tests
  • Laravel reCaptcha 集成

    我想在我的 Laravel 项目中实现 reCaptchawithout使用 Laravel 包 我尝试过使用经典的 reCaptcha V2 它可以工作 但我想改为实现不可见的 reCaptcha 所以我做的是这样的
  • Python Numpy One 热销区域

    制作这个 One Hot 编码矩阵的最佳方法是什么 array 1 0 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 0 as array 0 0 1 2 1 0 换句话说 如何解码 One Hot 数组 Use np arg
  • Android-显示自定义对话框

    在我的 Android 应用程序中 我使用自定义对话框 当我尝试显示对话框时 它会导致错误 我不知道自己做错了什么 我真的很困惑 这是我的代码 protected Dialog onCreateDialog int id Dialog di
  • python threading.timer 设置程序运行超时的时间限制

    我有一些与在 Python 中设置函数的最大运行时间相关的问题 事实上 我想用pdfminer来转换 pdf文件到 txt 问题是 很多时候 某些文件无法解码并且需要很长时间 所以我想设置threading Timer 将每个文件的转换时间
  • TCL 在字符串中设置特殊字符

    我想在 TCL 中将以下错误消息设置为变量 并与来自网络交换机的错误消息进行比较 绕过特殊字符 使用 插槽 端口 或 端口名称 或 插槽 或 我尝试用这种方式 set x Use slot port or portname or slot
  • 在日历应用程序中对重复事件进行建模的最佳方法是什么? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我正在构建一个需要支持重复事件的组日历应用程序 但我想出的用于处理这些事件的所有解决方案似乎都是黑客 我可以限制一个人可以看到的距离 然后立即生成所有事件 或者 我可以将事件存储为重复事件
  • 如何禁用“调试”在 package.json 中显示

    如何禁止在上面的 package json 中显示概述的 调试 提示scripts部分 设置为 debug javascript codelens npmScripts never 由于它显示为scripts我搜索的 package jso
  • 将项目标记为特定类别

    我想根据项目中的文本将项目标记为特定类别 我有以下代码 Sub ProcessRSS Read RSS items and process the usful ones Dim objList As Object Dim objItem A
  • Coldfusion 9 使用哪个版本的 iText?

    ColdFusion 9 使用哪个版本的 iText 并不明显 有任何想法吗 ColdFusion 9 0 1 附带 iText 2 1 0 由 lowagie com 提供 您可以在此处找到 ColdFusion 脚本来确定版本 http
  • 如何计算VBA中一个字符串出现在另一个字符串中的次数?

    如何计算 Access VBA 中一个字符串出现在另一个字符串中的次数 例如 我如何计算 The Quick Brown Fox Jumps Over the Lazy Dog 中 The 出现了多少次 因为您对子字符串 区分大小写没问题
  • 从 forEach 推送对象后数组保持为空

    需要帮助 我遇到数组保持空的问题从 forEach 推送对象后 我是否错过了什么 这是代码 const allStatus result forEach async element gt const count await BpCandid
  • 使用 Mac App Store 中 Safari 组件的应用程序的导出合规性

    我正在向 Mac App Store 提交一个应用程序 该应用程序使用 Safari 组件来显示网页 我被问到这个问题 您的应用程序是否设计为使用加密技术 或者是否包含或合并加密技术 即使您的应用程序仅使用 iOS 或 OS X 中提供的加
  • Swift - 整数转换为小时/分钟/秒

    我有一个 有点 关于时间转换的基本问题Swift 我有一个整数 我想将其转换为小时 分钟 秒 Example Int 27005会给我 7 Hours 30 Minutes 5 Seconds 我知道如何在 PHP 中执行此操作 但可惜 S
  • 打开抽屉菜单时重建脚手架主体

    我有一个有状态的小部件 它构建了一个脚手架 我在脚手架中使用一个抽屉作为侧面菜单 此外 Scaffold 的主体是一个 FutureBuilder 它从 firestore 数据库获取数据并将信息显示在主体的卡片中 打开抽屉时似乎出现问题
  • SQL 中“AS”是什么意思?

    下面是概要SELECT来自 PostgreSQL文档 在我看来 有时我们会写
  • DateTime 和 ASP.NET MVC 3 模型绑定的全球化问题

    我的应用程序在 ro RO 区域性设置下运行 在 web config 全球化部分中配置 如果我发出像这样的 POST 请求 POST myapp index date 03 12 2010 value something 模型绑定将此映射
  • IE8 在 JavaScript 弹出窗口上奇怪地崩溃

    创建弹出窗口后我遇到一个奇怪的问题onclick 弹出窗口打开 但在 IE8 上立即挂起 在包括 IE6 在内的所有其他浏览器上工作正常 但在添加alert如 JavaScript 代码中所示 弹出窗口工作正常 我在用 https 并不是