无法将属性“ src”设置为空-Chrome扩展程序

时间:2019-04-13 13:06:09

标签: javascript html google-chrome-extension

我正在尝试编写一个chrome扩展名,该扩展名应该选择当前打开的标签页的网址。 该扩展基于弹出窗口,因此我制作了一个html,其代码如下:

<html>
<head>
    <title>popup</title>    
</head>
<body>
<img src="www.insertrandom.com/query=" id="urlstore">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript" src="content.js"></script>
</body>
</html>

当我打开此网页并检查元素(ctrl + shift + i)时,完全没有错误。 但是,如果我检查其他网页(实际上是在互联网上)上的元素,例如stackoverflow,则会收到错误消息:

  

无法将属性'src'设置为空

关于stackoverflow的常见问题,例如: Cannot set property 'src' of nullError: Cannot set property 'src' of null无法解决问题。

//content.js
var curr_url = window.location.href;
var base_url = "www.insertrandom.com/query=";
document.getElementById("urlstore").src = base_url+curr_url;

另一个问题是,当我在其他网页上打开弹出窗口时,获得的URL是chrome-extension://insertrandomid/popup.html而不是当前的URL

1 个答案:

答案 0 :(得分:-1)

请注意,document.getElementById("urlstore").src = base_url+curr_url;。 这意味着您在页面上需要一个ID为urlstore的元素。如果标识为urlstore的元素不存在/包括 src 属性,则会出现错误Cannot set property 'src' of null。 如果存在document.getElementById("urlstore"),则应记录此元素以检查 src 属性是否存在:console.log(document.getElementById("urlstore"));