脚本延迟在 IE11 上不起作用
Script Defer is not working on IE11
我的HTML页面上有以下代码:
<SCRIPT type="text/javascript">
function insertScript()
{
var sHTML="<input type=button onclick=" + "go2()" + " value='Click Me'><BR>";
var sScript="<SCRIPT DEFER>";
sScript = sScript + "function go2(){ alert('Hello from inserted script.') }";
sScript = sScript + "</SCRIPT" + ">";
ScriptDiv.innerHTML = sHTML + sScript;
}
</SCRIPT>
它工作正常,并在IE9上显示警报,但在IE11上不显示警报。
'go2' is undefined
我在以下链接上有这个例子,在这方面的任何帮助都非常感谢:
http://samples.msdn.microsoft.com/workshop/samples/author/dhtml/refs/insertScript_2.htm
您需要将javascript代码移动到.js文件中,然后使用src属性包含该文件,然后这将起作用。
例如,将 Java 脚本代码移动到测试.js然后包含如下所示的文件。
<script defer src="''Test.js">
这是 IE 11 中使用 defer 属性的约定。如果没有脚本标记中的 src 属性,则延迟无法运行。
一种似乎有效的方式,是这样的
我改用 document.createElement 添加元素,并将其附加到目标元素或 document.body 中,以防 targetElement 不存在
您可能会在原始代码中检查一些语法错误,但这确实可以解决问题(不知道您最初尝试解决什么,这是一种向页面添加脚本的可怕方式)
而且真的不需要"DEFER",你可能需要等到你的页面加载(所以把自己附加到加载事件)
function insertScript(targetElement)
{
var button = document.createElement('input');
button.setAttribute('type', 'button');
button.setAttribute('onclick', 'go2()');
button.value = 'Click me';
var sScript= document.createElement('script');
sScript.innerHTML = "function go2(){ alert('Hello from inserted script.'); }";
(targetElement || document.body).appendChild(button);
(targetElement || document.body).appendChild(sScript);
}
insertScript(document.getElementById('target'));
<div id="target"></div>
相关文章:
- addEventListener在IE11中不起作用
- 悬停时颜色变为灰度在IE11中不起作用
- RadTreeView在IE11不必要的触发事件中不起作用
- javascript对象检查在IE11中不起作用
- 禁用编辑和删除按钮在IE9中不起作用,但在IE11中起作用
- HTML 中的锚标记在 IE11 中单击时不起作用
- CSS 缩放在 IE11 中不起作用
- IE11 脚本加载不起作用(有时)
- swfObject 嵌入对象在 ie11 中不起作用
- navigator.msSaveBlob 函数在 IE11 中不起作用
- window.getSelection不起作用在IE11中不起作用
- win.document 在 IE11 中不起作用
- 切换 JavaScript 代码在 IE11 中不起作用
- window.open() 在 IE11 中不起作用
- 为什么 forEach() 在 IE11 的 iframe 中不起作用
- 脚本延迟在 IE11 上不起作用
- AES-KW的解包键功能在IE11中不起作用
- HTML5拖放在IE11上不起作用
- jQuery.专注在ie11中不起作用
- AngularJs的List属性在ie11中不起作用