我一整天都在试着解决这个问题,但是真的搞不清楚。我有一个页面,上面有
从基于选项卡的菜单中填充的<div id="ajax"></div>
,将存储在外部文件(主要是表单验证)中的代码片段放入其中。
我见过需要对代码进行eval()的地方,但是在同一方面,人们说这是最不应该做的事情。
谁能给我指出正确的方向,并提供一个例子,如果可能的话,因为我是一个非常新的jQuery / JavaScript。
非常感谢:)
发布于 2010-12-09 18:04:48
将存储在外部文件(主要是表单验证)中的HTML代码片段拉入,其中包含一些javascript。
避免这样做。将<script>
写入innerHTML
不会导致脚本执行...尽管之后移动元素可能会导致它在不同的浏览器中在不同的时间执行。
所以它在实践中是不一致的,而且无论如何,包含脚本都没有任何意义:
document.write
,这通常会破坏整个页面,这是尝试加载第三方广告/跟踪脚本时的常见症状)。是的,jQuery试图通过提取脚本元素并执行它们来使浏览器之间的某些内容更加一致。但是不,它不能解决所有的情况(原则上也不能)。所以不要要求它这么做。保持脚本是静态的,并运行加载回调中需要发生的任何绑定脚本代码。
发布于 2010-12-09 17:19:44
如果您通过Ajax获取html,且html中有一个<script>
标记,并通过类似于$('#foo').append(html)
将该html写入到文档中,那么JS应该立即运行,不会有任何麻烦。
发布于 2010-12-09 17:18:16
在将内容添加到页面时,jquery
会自动处理在ajax请求中接收到的脚本。如果你有一个特殊的问题,那就发布一些代码。
请参阅this链接
HTML dataType:“
”-以纯文本形式返回;包含的脚本标记在插入到DOM中时进行计算。
https://stackoverflow.com/questions/4401127
复制