如何从javascript检索动态脚本

如何从javascript检索动态脚本,javascript,Javascript,在我的项目中,我必须检索所有脚本标记中的内容。我可以通过简单地包括 var scrpt=document.getElementsByTagName('script'); script_txt=scrpt[i].innerHTML; 但是通过使用上面的代码,我不会得到由创建的动态脚本 var s=document.createElement('script'); s.src="http://somefile.js"; 不仅如此,还有许多其他创建动态脚本的方法,如 document.write(

在我的项目中,我必须检索所有脚本标记中的内容。我可以通过简单地包括

var scrpt=document.getElementsByTagName('script');
script_txt=scrpt[i].innerHTML;
但是通过使用上面的代码,我不会得到由创建的动态脚本

var s=document.createElement('script');
s.src="http://somefile.js";
不仅如此,还有许多其他创建动态脚本的方法,如

document.write('<script src="">'); 
但这可能不是全部


有人能提出一个更好的方法来实现这个特性吗

您提到的第一个方法是使用
document.getElementsByTagName('script')
,这很好

我写了一个提琴,在这里我动态地计算插入标记前后的脚本标记。它很好用


你能给我们举一个它不起作用的例子吗?

你提到的第一个方法,使用
document.getElementsByTagName('script')
,很好

我写了一个提琴,在这里我动态地计算插入标记前后的脚本标记。它很好用


你能给我们举一个它什么时候不起作用的例子吗?

我甚至尝试过这个方法,但这并没有产生创建的动态脚本。这里的主要问题是你什么时候运行函数来检索脚本。有些脚本只有在用户单击后才能获取(例如Ads)。因此,您希望确保“Collection”函数的触发器也在此类事件之后完成。不要使用innerHTML属性,因为脚本内容不是标记。使用该属性。@dbaseman-
document。脚本是HTML5的一项功能,因此不适合在普通web上使用,因为许多浏览器都不支持它。我甚至尝试过这样做,但这不会产生创建的动态脚本。这里的主要问题是您何时运行函数来检索脚本。有些脚本只有在用户单击后才能获取(例如Ads)。因此,您希望确保“Collection”函数的触发器也在此类事件之后完成。不要使用innerHTML属性,因为脚本内容不是标记。使用该属性。@dbaseman-
document。脚本是HTML5的一项功能,因此不适用于一般web,因为许多浏览器不支持它。这对您的页面很适用。但是想象一下,如果你正在计算其他网页中的脚本,假设你正在使用userscripts从google.com中提取脚本,那么如何做到这一点呢?例如,你是否确保自己没有在iframe中运行
document.getElementsByTagName
将只从您正在执行的同一帧中获取标记。这对您的页面非常有用。但是想象一下,如果你正在计算其他网页中的脚本,假设你正在使用userscripts从google.com中提取脚本,那么如何做到这一点呢?例如,你是否确保自己没有在iframe中运行
document.getElementsByTagName
将仅从正在执行的同一帧中获取标记。
document.body.innerHTML='<script src="">';
var pattern=/([a-zA-Z0-9_\.].*?)=(document.createElement\((.*)\));
/g;