Threebody1 发表于 2023-7-31 16:37:34

tampermonkey js问题

如题,我在操作百度时发现连接不是真实地址,如

view-source:https://www.baidu.com/link?url=vsdsl04PUGwYT-udMGNDBSgQ4D62grmcfm8fM4LVjYLVVMoaXT6EoDxqw0FKxHcy&wd=&eqid=979239ad000511ed0000000463453c3e

源代码有这个



然后我 request = require("request")

??

陶远航 发表于 2023-7-31 16:37:52

在Tampermonkey脚本中,你需要使用GM_xmlhttpRequest而不是require("request")来发送HTTP请求。GM_xmlhttpRequest是Tampermonkey提供的一个函数,用于在用户脚本中发送跨域HTTP请求。

以下是一个示例代码,演示如何使用GM_xmlhttpRequest发送一个GET请求:

// ==UserScript==
// @name         Tampermonkey Request Example
// @namespace    http://tampermonkey.net/
// @version      1.0
// @descriptionExample of sending a GET request using Tampermonkey and GM_xmlhttpRequest
// @author       Your Name
// @match      https://www.baidu.com/*
// @grant      GM_xmlhttpRequest
// ==/UserScript==

(function() {
    'use strict';

    GM_xmlhttpRequest({
      method: "GET",
      url: "https://www.baidu.com/link?url=vsdsl04PUGwYT-udMGNDBSgQ4D62grmcfm8fM4LVjYLVVMoaXT6EoDxqw0FKxHcy&wd=&eqid=979239ad000511ed0000000463453c3e",
      onload: function(response) {
            console.log(response.responseText);
      }
    });
})();


这个示例代码将在百度页面上执行,发送一个GET请求到指定的URL,并打印响应内容到控制台(开发者工具的Console)。注意,在Tampermonkey脚本中,你无法直接访问源代码,因此view-source:前缀在请求URL中没有实际作用。

希望这个示例对你有帮助!如果你有更多问题,请随时提问。
如果问题已经解决,请设置最佳答案

Mike_python小 发表于 2023-7-31 16:38:09

本帖最后由 Mike_python小 于 2023-7-31 13:42 编辑

关于 Tampermonkey JavaScript 问题和 Web 开发:

在你提供的代码中,view-source:https://www.baidu.com/link?url=vsdsl04PUGwYT-udMGNDBSgQ4D62grmcfm8fM4LVjYLVVMoaXT6EoDxqw0FKxHcy&wd=&eqid=979239ad000511ed0000000463453c3e 是一个 view-source URL,它显示了指定 URL 页面的源代码。不过,你可能无法直接在脚本中使用这个 view-source URL 进行请求。

如果你想获取真实 URL 地址,并发送 HTTP 请求来检查它,可以考虑使用 XMLHttpRequest 对象来执行异步请求。以下是一个示例代码:


// 创建 XMLHttpRequest 对象
var xhr = new XMLHttpRequest();

// 指定请求方法和 URL
xhr.open('GET', 'https://www.baidu.com/link?url=vsdsl04PUGwYT-udMGNDBSgQ4D62grmcfm8fM4LVjYLVVMoaXT6EoDxqw0FKxHcy&wd=&eqid=979239ad000511ed0000000463453c3e', true);

// 监听请求状态改变事件
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
    // 请求成功,获取真实 URL 地址
    var realURL = xhr.responseURL;
   
    // 在控制台打印真实 URL 地址
    console.log('Real URL:', realURL);
}
};

// 发送请求
xhr.send();


请注意,在浏览器环境中,使用 XMLHttpRequest 对象时通常会遇到 CORS(跨源资源共享)限制。这意味着你可能无法从一个域名(例如 www.baidu.com)发送请求到另一个域名并获取响应。你可以在服务器端执行这样的请求,或者使用符合 CORS 要求的可用 API 或代理。

希望这些说明对你有所帮助!如果还有其他问题,请随时提问。

球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}

Threebody1 发表于 2023-7-31 16:40:28

Mike_python小 发表于 2023-7-31 16:38
关于 Tampermonkey JavaScript 问题和 Web 开发:

在你提供的代码中,view-source:https://www.baidu.com/ ...

我想搞到它的网页源代码

Mike_python小 发表于 2023-7-31 16:41:24

Threebody1 发表于 2023-7-31 13:40
我想搞到它的网页源代码

为什么用小号发?

Threebody1 发表于 2023-7-31 16:41:56

Mike_python小 发表于 2023-7-31 16:41
为什么用小号发?

{:10_256:}

Mike_python小 发表于 2023-7-31 16:42:12

Threebody1 发表于 2023-7-31 13:41


难道是....

Threebody1 发表于 2023-7-31 16:42:32

Mike_python小 发表于 2023-7-31 16:42
难道是....

??

Mike_python小 发表于 2023-7-31 16:43:12

Threebody1 发表于 2023-7-31 13:42
??

{:10_256:}没事

Threebody1 发表于 2023-7-31 16:43:44

Mike_python小 发表于 2023-7-31 16:43
没事

快说

Mike_python小 发表于 2023-7-31 16:44:27

Threebody1 发表于 2023-7-31 13:43
快说

{:10_256:}

Threebody1 发表于 2023-7-31 16:45:30

Mike_python小 发表于 2023-7-31 16:44


快回答问题

Mike_python小 发表于 2023-7-31 16:46:23

Threebody1 发表于 2023-7-31 13:45
快回答问题

当然,请告诉我你有什么问题,我会尽力回答。

Threebody1 发表于 2023-7-31 16:47:14

Mike_python小 发表于 2023-7-31 16:46
当然,请告诉我你有什么问题,我会尽力回答。


我想搞到它的网页源代码而不是url

liuhongrun2022 发表于 2023-7-31 16:48:09

Threebody1 发表于 2023-7-31 16:47
我想搞到它的网页源代码而不是url

你爬取呗

Threebody1 发表于 2023-7-31 16:48:36

liuhongrun2022 发表于 2023-7-31 16:48
你爬取呗

Js不会

Mike_python小 发表于 2023-7-31 16:49:05

Threebody1 发表于 2023-7-31 13:47
我想搞到它的网页源代码而不是url

// ==UserScript==
// @name         Get Page Source Code
// @namespace    http://your-namespace.com
// @version      1.0
// @descriptionGet the page source code using Tampermonkey
// @match      https://www.baidu.com/*
// @grant      GM_xmlhttpRequest
// ==/UserScript==

(function() {
    'use strict';

    // 在适当的时机触发获取网页源代码的函数
    function getPageSourceCode() {
      var url = "https://www.baidu.com/link?url=vsdsl04PUGwYT-udMGNDBSgQ4D62grmcfm8fM4LVjYLVVMoaXT6EoDxqw0FKxHcy&wd=&eqid=979239ad000511ed0000000463453c3e";

      GM_xmlhttpRequest({
            method: "GET",
            url: url,
            onload: function(response) {
                console.log(response.responseText);// 打印网页源代码
            }
      });
    }

    getPageSourceCode();// 调用函数以获取网页源代码
})();

Threebody1 发表于 2023-7-31 16:50:39

Mike_python小 发表于 2023-7-31 16:49


Uncaught (in promise) ReferenceError: GM_xmlhttpRequest is not defined
    at getPageSourceCode (userscript.html?name=Search-Cleaner.user.js&id=8065cae8-85e2-4373-970c-7eee03440a35:57:9)
    at userscript.html?name=Search-Cleaner.user.js&id=8065cae8-85e2-4373-970c-7eee03440a35:66:5
    at Object.<anonymous> (userscript.html?name=Search-Cleaner.user.js&id=8065cae8-85e2-4373-970c-7eee03440a35:67:3)
    at St (<anonymous>:9:89)
    at userscript.html?name=Search-Cleaner.user.js&id=8065cae8-85e2-4373-970c-7eee03440a35:1:90
    at window.__f__lkqnmpzy.yvt (userscript.html?name=Search-Cleaner.user.js&id=8065cae8-85e2-4373-970c-7eee03440a35:1:318)
    at St (<anonymous>:9:89)
    at s (<anonymous>:72:214)
    at <anonymous>:75:107
    at g (<anonymous>:69:364)

Mike_python小 发表于 2023-7-31 16:52:18

Threebody1 发表于 2023-7-31 13:50


这个错误表明GM_xmlhttpRequest未定义,这可能是因为你没有正确引入Tampermonkey的API。请确保以下几点:

1. 你已经安装了Tampermonkey插件,并且在浏览器中启用了它。

2. 在脚本的元数据块(以// ==UserScript==开始的部分)中,添加了@grant GM_xmlhttpRequest。

3. 确保你将脚本保存为.user.js文件,并通过Tampermonkey加载脚本。不要直接在HTML页面中引入脚本。

请检查这些方面是否正确,如果问题仍然存在,请尝试重新安装或更新Tampermonkey插件。另外,如果你使用的是其他用户脚本管理器,比如Greasemonkey,那么可能需要使用不同的API来发送XMLHttpRequest请求。

Threebody1 发表于 2023-7-31 16:54:34

Mike_python小 发表于 2023-7-31 16:52
这个错误表明GM_xmlhttpRequest未定义,这可能是因为你没有正确引入Tampermonkey的API。请确保以下几点: ...

谢谢,成功了,如何使用正则表达式替换?
页: [1] 2 3
查看完整版本: tampermonkey js问题