gpt4 book ai didi

javascript - 从导入的 HTML/JS 文件中提取变量

转载 作者:行者123 更新时间:2023-12-03 10:36:58 25 4
gpt4 key购买 nike

我的 HTML 文件包含 <script>标签,在该脚本和其他代码中,有一个保存数据数组的变量。
我需要提取该 var/data。
我能想到的唯一解决方案是在导入的文件中查找模式(在 JSON.parse 之前使用 filereader),并将其拆分为关键点,例如。在数组开始时

var data = [ 

最后}];但恐怕不是 100% 确定。
在这种情况下,是否有任何干净的方法可以定位内部变量并提取它?
HTML 文件具有独特的结构,但每个文件的数组数据都不同。

最佳答案

这是您从外部页面或外部资源加载脚本的方法,如果您不明白,请了解更多详细信息。

moment.js 通过 jquery 加载,通过 javscript eval 加载脚本

仅在 Chrome 控制台中复制粘贴此内容并了解发生了什么:

//In my example using plain html let say ajax result or jquery load
//Note that if <script src="https://code.jquery.com/jquery-1.10.2.js"></script> here different approach is required


$.getScript( "http://cdnjs.cloudflare.com/ajax/libs/moment.js/2.9.0/moment.min.js" )
.done(function( script, textStatus ) {
parseScript(true);
});
function parseScript(go)
{
if (go)
{
var xhr = $('<div><script>alert("Evaluated becouse values are not set");</script><script>var1=0;</script><div class="xx"></div><script>cars =["Saab", "Volvo", "BMW"];</script><div><script>alert("Not executed because values are set")</script></div></div>');
//var1 in global scope
var1 = undefined;
//cars in global scope;
cars = undefined;
$(xhr).filter("script").each( function(e) {
if (var1 != undefined && cars != undefined ) return;
console.log(moment().format('MMMM Do YYYY, h:mm:ss a') + ' ______ script executed ' + $(this).html());
eval($(this).html());
alert(moment().format('MMMM Do YYYY, h:mm:ss a') + ' _______ var1: ' + var1 + ' cars: ' + cars);
});
}
}

关于javascript - 从导入的 HTML/JS 文件中提取变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28945220/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com