我正在尝试编写一个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 null和 Error: 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
答案 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"));