首页 文章

Chrome扩展程序创建 - 扩展在本地托管但无法发布到网上应用商店时[关闭]

提问于
浏览
-1

Code:

function showpanel() {     
    var video = document.getElementsByClassName("jw-video")[0].src;
    console.log(video);
    window.open(video, '_blank');
}

setTimeout(showpanel, 1000);

Description:
这个问题更多的是想知道为什么会发生这种情况而不是试图修复它 .

扩展点是,我是从我的兄弟那里得到的,因为他想从123movies.is下载视频而不下载病毒 . 我原本打算通过我的网站组合网站,但后来我注意到扩展它会更容易 .

当我在个人电脑上本地托管文件时,一切正常 . 当电影页面加载时,它打开一个带有 video 标签的src的新标签,我只需按下载按钮即可 . 但是当我将扩展文件发布到谷歌浏览器网页商店时,每当我加载电影页面时,我都会收到以下两个错误:


Uncaught TypeError: Cannot read property 'src' of undefined at showpanel (chrome-extension://pefemfiejenbjbbbilkiejfnpcjpeoaf/content.js:2)


Failed to load resource: net::ERR_TOO_MANY_REDIRECTS


只有在扩展发布到网上商店时,才会发生导致这些错误的原因?

1 回答

  • 0

    如果没有看到整个项目,很难知道究竟是什么导致了这个问题 .

    但是,我会做一些事情 . 1)在其中一个目标页面的控制台中运行您的代码 . 2)尝试使用简单的控制台日志语句将扩展加载到chrome Web商店,该语句仅在您尝试定位的站点上运行 . 然后你知道问题是代码还是扩展清单 . 清单通常是扩展初学者才能做到最难的部分 . 3)如果这样做,并且代码与扩展中的代码相同,那么你正在研究它为什么

    document.getElementsByClassName("jw-video")[0]
    

    从Webstore运行时未定义 . 首先,我会将该功能与事件联系起来

    document.addEventListener("DOMContentLoaded", function(event) {
      console.log("DOM fully loaded and parsed");
      showpanel();
    });
    

    而不是将其设置为在计时器上运行 . 然后我会在document_start注入脚本而不是document_end . 扩展中任何未定义的消息都可能与清单中内容脚本的注入有关,很可能是注入的时间或与网站协议匹配的权限 .

相关问题