V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
shaoyang0
V2EX  ›  JavaScript

菜鸟问题:某不可描述的网站用 jq 写了个油猴插件,结果本地调试可以运行,实际网页不可用。

  •  
  •   shaoyang0 · 2020-05-10 15:24:23 +08:00 · 1742 次点击
    这是一个创建于 1693 天前的主题,其中的信息可能已经有所发展或是发生改变。

    菜鸟一只,为了方便就按照 JQ 的教程做了一个油猴插件。然后问题来了。

    调试的时候,把网页源码复制为 html,本地调试就可以正常运作。

    但是实际运行的时候却不能正常运作。

    // 代码开始
    
    (function() {
        'use strict';
    
        console.log('脚本运行');
        document.title="hello"; //修改标题
    
        $('h1').append('<button id="btn2">设置 HTML</button>');
    
      /*  $('headactions .notabs').click(function () {
           alert('将要进行搜索了');
        });
    
      */
        get();
    
    })();
    
    function get() {
        console.log('获取文本');
    
        var name = $(".postmessage.defaultpost h2").text(); //获取文章名
    
        //方法 1
        var a = $(".t_msgfont.noSelect:first").text();
        var d =  $("table ");  //删除元素
    
       //方法 2
         /* var b = $(".t_msgfont.noSelect:first")
        .clone()//复制元素
        .children() //获取所有子元素
        .remove()   //删除子元素
        .end()//回到选择的元素
        .text();//获取文本值
        */
    
        console.log(b); //文本内容测试
    
    
        //调用下载
        //saveShareContent(name+".txt",a);
    }
    
    
    function saveShareContent (Name,data) {
        alert('下载模块');
        let downLink = document.createElement('a')
        downLink.download = Name
        //字符内容转换为 blod 地址
        let blob = new Blob([data])
        downLink.href = URL.createObjectURL(blob)
        // 链接插入到页面
        document.body.appendChild(downLink)
        downLink.click()
        // 移除下载链接
        document.body.removeChild(downLink)
    }
    
    <html>
    <!--在这里插入内容-->
    </html>
    
    
    

    其中两个方法都可以在本地调试,但是方法二在实际网页调试的时候最后就会获取空白值。

    以及在 h1 添加设置按钮也无法在实际网页中实现。

    我是用的这个不可描述的网站……进行测试的。https://sis001.com/forum/thread-10704060-1-1.html

    查了半天也没明白是怎么回事。有木有大佬帮我解答下疑惑。。明明两个的源码都是一样的。结果却不一样

    5 条回复    2020-05-12 15:36:46 +08:00
    Cusmate
        1
    Cusmate  
       2020-05-11 14:07:16 +08:00 via Android
    脚本的 metablock 内加一条引入: @require <jQuery 源码的网址>
    shaoyang0
        2
    shaoyang0  
    OP
       2020-05-12 10:30:38 +08:00
    @Cusmate
    有写引入 JQ 源码地址,目前的情况是,在在线页面无法正常获取。 而如果吧网站的源码复制下载,保存一个 html 。。这个脚本就能正常运行。
    Cusmate
        3
    Cusmate  
       2020-05-12 14:09:15 +08:00 via Android
    @shaoyang0 我实际用 Greasemonkey 测试了你的脚本代码都能用,包括添加按钮和下载功能。从你的描述来看就是 jQuery 没起作用
    Cusmate
        4
    Cusmate  
       2020-05-12 14:14:53 +08:00 via Android
    @shaoyang0 最好加上你脚本运行时候的 console 错误日志
    shaoyang0
        5
    shaoyang0  
    OP
       2020-05-12 15:36:46 +08:00
    @Cusmate 谢谢大佬,我今天又看了下错误日志。发现的确是我忽略了 jq 的引用问题。我的 jq 是当时随手从 https://code.jquery.com/ 复制过来的。然而好像复制错链接了…………
    现在从新添加了 JQ 的引用链接。已经可以正常使用了。
    我还以为碰见了特别奇怪的 BUG 。怎么查同样问题都找不到,结果是自己疏忽了。碰见问题光看代码那一块了,没想过问题居然出在引用链接上了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2878 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 08:16 · PVG 16:16 · LAX 00:16 · JFK 03:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.