0

我正在尝试在 PhoneGap 应用程序中使用 jquery 进行屏幕抓取。问题是当我将目标 HTML 加载到当前 dom 以便我可以使用选择器时,它会尝试执行 javascript:

        $(function() {
            $.get('http://www.bloomberg.com/quote/csfb:ind', function(data) {
                var elements = $("<div>").html(data)[0].getElementsByClassName("price")[0];
            });
        });

get 工作正常并拉入 html,但一旦开始加载,它就会尝试执行 javascript。

反正有没有去掉所有的javascript标签?

4

1 回答 1

1

这似乎是最可靠的方法,因为您自己提出的任何解析可能并非在所有情况下都有效。

使用 JS 正则表达式从 html 中删除所有脚本标签

如果我从该答案中复制 stripScripts 函数:

function stripScripts(s) {
    var div = document.createElement('div');
    div.innerHTML = s;
    var scripts = div.getElementsByTagName('script');
    var i = scripts.length;
    while (i--) {
        scripts[i].parentNode.removeChild(scripts[i]);
    }
    return div.innerHTML;
}
$(function () {
    $.get('http://www.bloomberg.com/quote/csfb:ind', function (data) {
        var elements = $("<div>").html(stripScripts(data))[0].getElementsByClassName("price")[0];
    });
});
于 2012-04-19T22:23:50.447 回答