1

我正在尝试一种技术,将我的代码分解成单独的文件(这样一个可能有一堆不同部分的页面现在是多个文件而不是一个巨大的 HTML 页面)并使用 ajax 加载它们,然后设置内容作为一些父 div 的 innerHTML。这使得代码非常干净,并且在看似所有现代浏览器中都能很好地工作,但我只是注意到,当外部页面包含一个<script>标签时,该标签中的 javascript 将被忽略(不解析并加载到父页面的 javascript 上下文中)所以这些外部代码片段中存在的方法和变量完全丢失了。

我已经完成了一项工作,我在其中读取了脚本标签的内容,然后读取了eval()整个内容,这很有效......但是,我很好奇我是否忽略了一些将脚本包含在这些外部文件中的更原生机制,或者如果这种方法真的是实现我的目标的唯一方法。

TIA

4

1 回答 1

2

这不是一份工作innerHTML。您可能应该将外部文件加载为 DOM 对象(这是XMLHTTPRequest名称的来源),以便在script添加之前将标签转换为正确的对象。

使用 jQuery 对 Firefox 进行的快速实验(在此页面上,呵呵)表明innerHTML将添加一个不会执行的脚本元素,而这会执行:

$( 'body' ).append( $('<script>console.log( "hello, world!" );</script>' ) );
于 2012-12-30T08:09:17.507 回答