首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从使用AJAX加载的外部文件运行Javascript

从使用AJAX加载的外部文件运行Javascript
EN

Stack Overflow用户
提问于 2010-12-10 01:14:29
回答 3查看 1.1K关注 0票数 1

我一整天都在试着解决这个问题,但是真的搞不清楚。我有一个页面,上面有

从基于选项卡的菜单中填充的<div id="ajax"></div>,将存储在外部文件(主要是表单验证)中的代码片段放入其中。

我见过需要对代码进行eval()的地方,但是在同一方面,人们说这是最不应该做的事情。

谁能给我指出正确的方向,并提供一个例子,如果可能的话,因为我是一个非常新的jQuery / JavaScript。

非常感谢:)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-12-10 02:04:48

将存储在外部文件(主要是表单验证)中的HTML代码片段拉入,其中包含一些javascript。

避免这样做。将<script>写入innerHTML不会导致脚本执行...尽管之后移动元素可能会导致它在不同的浏览器中在不同的时间执行。

所以它在实践中是不一致的,而且无论如何,包含脚本都没有任何意义:

  • 当您两次加载相同的代码片段时,您将运行同一脚本两次,这可能会重新定义绑定到页面的某些函数或变量,这可能会使您陷入非常奇怪且难以调试的situations
  • non-async/defer脚本期望在解析时运行的情况,并且可能包含在插入到现有文档中时无法工作的技术(对于document.write,这通常会破坏整个页面,这是尝试加载第三方广告/跟踪脚本时的常见症状)。

是的,jQuery试图通过提取脚本元素并执行它们来使浏览器之间的某些内容更加一致。但是不,它不能解决所有的情况(原则上也不能)。所以不要要求它这么做。保持脚本是静态的,并运行加载回调中需要发生的任何绑定脚本代码。

票数 1
EN

Stack Overflow用户

发布于 2010-12-10 01:19:44

如果您通过Ajax获取html,且html中有一个<script>标记,并通过类似于$('#foo').append(html)将该html写入到文档中,那么JS应该立即运行,不会有任何麻烦。

票数 1
EN

Stack Overflow用户

发布于 2010-12-10 01:18:16

在将内容添加到页面时,jquery会自动处理在ajax请求中接收到的脚本。如果你有一个特殊的问题,那就发布一些代码。

请参阅this链接

HTML dataType:“

”-以纯文本形式返回;包含的脚本标记在插入到DOM中时进行计算。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4401127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档