首页 / 知识
关于ajax:如何执行动态加载的JavaScript块?
2023-04-16 03:38:00

How do you execute a dynamically loaded JavaScript block?我正在一个网页上进行AJAX调用,该调用返回的HTML块如下:
我正在将整个内容插入DOM,但是JavaScript没有运行。有办法运行吗? 一些细节:我无法控制脚本块中的内容(因此无法将其更改为可以调用的函数),我只需要执行整个块即可。我无法在响应中调用eval,因为JavaScript在HTML的较大块内。我可以做某种正则表达式来分离JavaScript,然后在其上调用eval,但这真令人讨厌。有人知道更好的方法吗? 通过设置元素的innerHTML属性添加的脚本不会执行。尝试创建一个新的div,设置其innerHTML,然后将此新的div添加到DOM中。例如:
如果您使用响应来填充div或其他内容,则不必使用正则表达式。您可以使用getElementsByTagName。
@Ed接受的答案。不适用于当前版本的Firefox,Google Chrome或Safari浏览器。我设法采用他的示例来调用动态添加的脚本。 必要的更改仅是将脚本添加到DOM的方式。代替将其添加为
这适用于Firefox 42,Google Chrome 48和Safari 9.0.3 一种替代方法是不只是使用InnerHTML将Ajax调用的返回结果转储到DOM中。 您可以动态地插入每个节点,然后脚本将运行。 否则,浏览器仅假定您正在插入文本节点,而忽略脚本。 使用Eval是相当邪恶的,因为它需要启动Javascript VM的另一个实例并通过JIT传递字符串。 最好的方法可能是直接通过DOM识别并评估脚本块的内容。 不过,我会小心..如果您实施此操作是为了克服某些异地通话的限制,则说明您正在开设安全漏洞。 无论您实施哪种实施方式,都可以将其用于XSS。 对于那些喜欢危险生活的人:
您可以使用一种流行的Ajax库中的一种,它本身可以为您执行此操作。我喜欢原型。您可以只将evalScripts:true作为Ajax调用的一部分添加,它会自动发生。 |
最新内容
相关内容
linux执行两次命令?
linux执行两次命令?,系统,信息,连续,名称,命令,初级,首页,工具,管理,终端,linux怎么执行命令linux如何进入命令行?我们一起来了解一下吧。打开llinux命令执行安装?
linux命令执行安装?,软件,系统,管理,网站,官网,市场,中心,最新,灵活,工作,如何定制安装linux软件?linux安装软件的三种方式如下:源代码编译安装linux执行一条新命令?
linux执行一条新命令?,系统,工作,命令,管理,网络,服务,信息,目录,路径,脚本,Linux下必须知道的11个网络命令netstat -r:打印路由表。路由表保存linux执行c程序命令?
linux执行c程序命令?,系统,工作,工具,信息,代码,命令,文件,保险,管理,环境,linux系统常用操作命令linux常用命令有pwd命令、cd命令、ls命令、clinux命令执行中断?
linux命令执行中断?,设备,系统,网络,工具,工作,通用,状态,名字,流程,进程,linux解压文件终端断了,还会继续执行吗1、在Linux远程运行JAR包时,是执行linux脚本命令行?
执行linux脚本命令行?,工具,位置,地方,环境,数据,状态,暂停,增长,系统,基础,运行linux脚本,遇到要按回车键,怎么让它自动应答,继续运行脚本?1linux远端执行命令?
linux远端执行命令?,系统,状态,软件,名称,密码,暂停,网络,环境,认证,在线,如何远程通过Xshell实现对linux主机的开、关机及重启1、步骤一:登录Llinux命令行执行成功?
linux命令行执行成功?,系统,信息,状态,服务,管理,百度,设计,灵活,代码,命令,Linux系统中如何用shell脚步判断是否telnet成功。1、连接到相应的安卓执行linux命令行?
安卓执行linux命令行?,系统,设备,基础,发展,标准,情况,信息,电话,号码,工具,安卓超级终端可以执行全部linux命令吗?可以,安卓都行,下个终端模拟c执行在linux命令?
c执行在linux命令?,系统,环境,保险,工具,代码,命令,程序,文件,终端,语言,如何在c++程序里用linux命令FILE *fp = popen(cmd);执行cmd中的命令,然linux外部命令调用?
linux外部命令调用?,系统,软件,标准,命令,盘中,管理,外部,进程,程序,内存,linux借用外部命令expr,实现计算器功能,利用管道,进程你得装一个callinux执行中退出命令?
linux执行中退出命令?,档案,状态,命令,分析,数据,电脑,实时,系统,工具,编辑,linux用VI编辑后保存退出命令是什么啊?linux退出vi编辑命令有四种