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

时间:2017-07-12 01:07:08

标签: javascript google-chrome-extension

代码:

video

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

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

当我在个人电脑上本地托管文件时,一切正常。当电影页面加载时,它会打开一个带有Uncaught TypeError: Cannot read property 'src' of undefined at showpanel (chrome-extension://pefemfiejenbjbbbilkiejfnpcjpeoaf/content.js:2)标签的src的新标签,我只需按下下载按钮即可。但是当我将扩展文件发布到谷歌浏览器网页商店时,每当我加载电影页面时,我都会收到以下两个错误:

Failed to load resource: net::ERR_TOO_MANY_REDIRECTS

<?xml version="1.0"?> <FrameLayout xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_height="match_parent" android:layout_width="match_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <android.support.constraint.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/colorBackground"> <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="51dp" android:layout_height="51dp" android:layout_gravity="bottom" android:layout_margin="16dp" android:layout_marginBottom="8dp" android:layout_marginEnd="8dp" android:layout_marginLeft="8dp" android:layout_marginRight="8dp" android:layout_marginStart="8dp" android:layout_marginTop="8dp" android:clickable="true" android:onClick="add_item" android:src="@mipmap/plus_two" app:backgroundTint="@color/colorPrimary" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintHorizontal_bias="0.984" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.982" /> </android.support.constraint.ConstraintLayout> <ListView android:id="@+id/lv" android:layout_width="fill_parent" android:layout_height="fill_parent" android:drawSelectorOnTop="false" tools:layout_editor_absoluteX="16dp" tools:layout_editor_absoluteY="16dp" /> </FrameLayout>

只有在将扩展程序发布到网上商店时才会导致这些错误?

1 个答案:

答案 0 :(得分: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。扩展中任何未定义的消息都可能与清单中内容脚本的注入有关,很可能是注入的时间或与网站协议匹配的权限。