.load()是否检索Javascript?
因此,我有一个包含Javascript(和PHP)的div: .load()方法会在div中检索并运行Javascript吗.load()是否检索Javascript?,javascript,php,jquery,Javascript,Php,Jquery,因此,我有一个包含Javascript(和PHP)的div: .load()方法会在div中检索并运行Javascript吗 或者.load()是否只将html传递到div?如果传递给.load的参数末尾没有包含选择器,则会运行其中的脚本 但是,由于您使用选择器调用了.load,因此其中的任何脚本都不会运行。见: 脚本执行 使用不带后缀选择器表达式的URL调用.load()时,在删除脚本之前,内容将传递到.html()。这将在脚本块被丢弃之前执行它们如果调用.load(),并将选择器表达式附加到
或者.load()是否只将html传递到div?如果传递给
.load
的参数末尾没有包含选择器,则会运行其中的脚本
但是,由于您使用选择器调用了.load
,因此其中的任何脚本都不会运行。见:
脚本执行
使用不带后缀选择器表达式的URL调用.load()
时,在删除脚本之前,内容将传递到.html()
。这将在脚本块被丢弃之前执行它们如果调用.load()
,并将选择器表达式附加到URL,则脚本将在更新DOM之前剥离,因此不会执行。下面可以看到这两种情况的示例:
在这里,作为文档的一部分加载到#a中的任何JavaScript都将成功执行
$( "#a" ).load( "article.html" );
但是,在以下情况下,要加载到#b中的文档中的脚本块会被剥离,并且不会执行:
$( "#b" ).load( "article.html #target" );
您的案例是第二个,因此内联
s将被剥离而不运行
如果要在客户端上更新NumItems
的值,请不要使用.load
-而是向只回显$\u会话['NumItems']
的PHP脚本发出网络请求,并将响应设置为会话存储
项。.load()方法仅加载以下数据:
网址
类型:字符串
包含请求发送到的URL的字符串。
数据
类型:PlainObject或String
随请求一起发送到服务器的普通对象或字符串。
完成
类型:函数(字符串响应文本、字符串文本状态、jqXHR jqXHR)
请求完成时执行的回调函数
在我看来,您可以将文件路径作为参数传递给该方法,该文件中的任何javascript逻辑都将执行
但是,
在这里,作为文档的一部分加载到#a中的任何JavaScript都将成功执行
$( "#a" ).load( "article.html" );
但是,在下面的情况下,要删除的文档中的脚本块
加载到#b中的数据被剥离,且未执行:
$( "#b" ).load( "article.html #target" );
这应该可以运行JavaScript(尽管我不喜欢这种设计)。请记住,PHP在发送到客户端浏览器之前在服务器上执行(因此在发送头之前需要
session_start();
),jQuery随后进行解析。如果要阻止客户端更新会话,则只需创建一个服务器$\u会话
。使用AJAX与您的PHP页面通信。谢谢,我将采用您建议的方法。我还想指出,您可能在这里输入了一个错误:“因为您使用选择器调用了.load,所以里面的所有脚本都将运行。”根据您的其余评论,我想您的意思是“不会”运行。如果是这样的话,为了清晰起见,也许可以编辑该部分。
$( "#a" ).load( "article.html" );
$( "#b" ).load( "article.html #target" );