通过jquery运行另一个html页面上的javascript代码

Running the javascript code present on another html page through jquery

本文关键字:javascript 代码 jquery 运行 另一个 html 通过      更新时间:2023-09-26

这可能是一个新手问题,但我刚刚开始使用jquery。我的基本要求提取的链接是存在于另一个html的javascript代码(代码嵌入在html页面,而不是在一个单独的文件)。

链接也存在作为一个标签内的<a>标签的href属性,只是为了添加,如果它更容易从那里提取它(我使用chrome,所以我认为它认为没有<noscript>标签的子节点)

在此之后,我尝试做一个ajax请求的html页面(使用$.ajax)认为它会在页面上运行脚本,但得到了页面的html代码返回:S。我也听说过一个叫evalscripts的东西:真的,但不确定这是否会在这里工作,或者如何使用它?

我也试着用jquery的"contains"操作来搜索我的html页面返回的html代码中的链接。

我所做的一切都是为了创建一个油脂猴子脚本。请建议

示例代码:这是该页面的html中的一个函数:

function fun() {
    obj = new pollingObj('argument', "a link I want to extract comes here");
}

我想提取链接:"我想提取的链接来到这里",然后打开它。在我的页面上,我正在运行我的jquery脚本

这个链接也像这样出现在html页面上:

<noscript>
   <a href = "a link I want to extract comes here" target="_blank">blabla</a>
</noscript>

如果链接提取不可能,是否可以运行该页上存在的javascript ?

如果您能够通过.ajax成功获得页面的html代码,并且您想要的数据在html代码中,那么尝试运行脚本是不值得的。只需通过DOM访问URL:

// ajax success function
success: function(html) {
    var anchorCode = $(html)
        // this assumes that noscript is a top-level element
        // otherwise, use .find('noscript')
        .filter('noscript')
        .text(); // get the code for the anchor tag, as a string
    var myLink = $(anchorCode).attr('href');
    // do something with myLink
}

编辑:事实证明,jQuery在处理noscript标签的方式有点有趣-内部标签似乎不被认为是DOM的一部分,所以你需要抓取标签的文本内容,然后使用jQuery DOM化它。