如何使用jQuery从ajax加载的页面获取JavaScript变量?

时间:2014-04-18 08:15:55

标签: javascript jquery ajax greasemonkey userscripts

我正在为一个网页(也就是浏览器插件)开发用户脚本。我需要使用ajax请求更新一个全局Javascript变量(让我们称之为gVariable(它是一个数组))。

在ajax请求中,我正在请求我正在使用的同一页面。但只是想“提取”一个全局变量并用下载的那个替换当前变量。

这是我现在拥有的(不工作)。

function LoadNewItemList() {
    $.get(window.location, function (data) {
        var $data = $(data);       
        unsafeWindow.gVariable = data.gVariable; //I'm getting 'undefined'
    });
}

JS测试: http://jsfiddle.net/ywVKT/15/

2 个答案:

答案 0 :(得分:1)

看着你的小提琴,主要有4个标签。即 "标题" ,"链接" ," ul" ,"脚本"。这就是为什么需要将索引用作3的原因,因为脚本标记包含变量名称和值。 试试这个,它会工作。

$('#variableHere').text(data2[3].innerText);

它会在o / p之后返回: var gV​​ariable = 0; gVariable = 5 现在您可以使用regex / substring函数来提取可修改的名称和值..

答案 1 :(得分:0)

我找到了解决方案:

unsafeWindow.gVariable = 0;
var $script = $data.filter('script:contains("var gVariable")').first();
eval($script.text());
unsafeWindow.gVariable = gVariable;