从动态加载的内部HTML上下文运行自定义JavaScript



我有一个 HTML 文档

<div id="test"></div>

然后我动态加载一些上下文到 #testdiv。

function change()
{
ws = document.getElementById(id);
str = '<script>function ttest(){window.alert("Yahoo!!!")}</script><select><option onclick="ttest();">1</option><option >2</option></select>';
ws.innerHTML = str;
}
window.onload = change();

加载页面时,自定义脚本

<script>function ttest(){window.alert("Yahoo!!!")}</script>

不行。

当它没有任何 innerHTML 的情况下放置静态时,它可以完美地工作。当它不是自定义函数时,它也可以工作。

当我的自定义函数是使用 innerHTML 或/和 AJAX+innerHTML 动态加载时,如何使它工作?

通过 createElement 将脚本添加到document.head。所以像这样:

var script = document.createElement("script");
script.innerHTML = "function ttest() { alert('Yahoo'); }";
document.head.appendChild(script)

最新更新