我想制作一个需要在网页上列出<script>
标签的Google Chrome扩展程序。所以我创建了一个manifest.json
,其脚本仅"run_at": "document_start"
在该特定网页上。当我加载页面时,我注意到document.getElementsByTagName('script')
的值是一个数组,其中包含正确的<script>
元素,但它的长度为0,我无法访问这些元素。
var scripts = document.getElementsByTagName('script');
console.log(scripts.length); // 0
console.log(scripts); // [<script type="text/javascript">...</script>] with expected JavaScript in it
某处某事肯定是错的。 scripts
变量的长度为0,但控制台显示它包含一个无法访问的元素。
答案 0 :(得分:3)
对于“document_start”,文件是在来自css的任何文件之后注入的,但在构造任何其他DOM之前或运行任何其他脚本。
如果您需要访问DOM,请将run_at
更改为document_end
或将其保留为默认document_idle
。