IE 说 javascript 函数未定义,但在 Chrome 中可以正常工作

Posted

技术标签:

【中文标题】IE 说 javascript 函数未定义,但在 Chrome 中可以正常工作【英文标题】:IE says javascript function is undefined, but it works in Chrome OK 【发布时间】:2019-01-16 06:26:27 【问题描述】:

我有一个包含链接的网页 - 打开一个显示 YouTube 视频的新窗口。它在 Chrome 中运行良好,但在 IE 中它不起作用。 IE 控制台显示:SCRIPT5009: 'open_win' is undefined(我使用的是 IE11)

在头部我有:

function open_win(url)
   
   new_window = open('','video','width=500,height=390,menubar=no,status=no,location=no,toolbar=no,scrollbars=yes');
   // open new document 
    new_window.document.open();
    // Text of the new document 
    new_window.document.write("<html><head></head><body style='background-color:'black';margin-top:0; margin-right:0; margin-bottom:0; margin-left:0;'>");
    new_window.document.write("<iframe width='560' height='315' src='https://www.youtube.com/embed/-linkRedacted-' frameborder='0' allow='autoplay; encrypted-media' allowfullscreen></iframe>");
    new_window.document.write("</body></html>");
    // close the document
    new_window.document.close(); 
    

在我的身体里:

<a class="audio" href="javascript:void(0)" onclick="open_win()">
<img  src="images/demo.jpg"   /></a>

是 IE 安全区域问题,还是编码错误?

【问题讨论】:

太棒了 - 你有答案 - 谢谢!知道为什么找不到它(这肯定是这样的函数应该驻留的地方吗?) 发布的解决方案似乎消失了;?是将功能从头部转移到身体部分。 它应该可以在任何地方工作。 代码在&lt;script&gt;...&lt;/script&gt;里面吗? 好吧@Barmar - 解决方案(似乎已经从视图中消失了;?)说IE11在头部找不到功能。所以,我把它移到 并且它现在可以工作了。而且,很高兴能说明这一点……它在 【参考方案1】:

两件事:

您是否在 javascript 中使用严格?也许如果你正在使用 严格的 IE11 不喜欢你调用一个函数而不传递 函数变量。 javascript 是否在单独的文件中。也许尝试将您的函数复制到您的 html 上方,看看它是否有所作为

【讨论】:

好主意,但我有:ttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" rel="nofollow" target="_blank">w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> w3.org/1999/xhtml" dir="ltr" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">。我已经尝试过传递/不传递变量。 并且javascript在页面的头部。 您最终是否通过从 head 部分删除您的 javascript 来解决此问题? 我尝试将 js 放在页面底部的 head 部分,它在我遇到问题的 IE11 中有效。谢谢。

以上是关于IE 说 javascript 函数未定义,但在 Chrome 中可以正常工作的主要内容,如果未能解决你的问题,请参考以下文章

IE中未定义的outerHTML

ASP.Net MVC JQuery 在 IE8 中未定义,但在 Chrome 中可以

javascript onclick调用函数,进入不了函数,报函数未定义的错误

IE下显示 JS 显示未定义

JavaScript 运行时错误: 无法设置未定义或 null 引用的属性"innerText"

HTML子过程在IE11中总是提示未定义,是怎么回事?