我在学习 chrome 插件开发的过程中遇到一个问题,代码如下:
(function(){
var protocol = window.location.protocol;
var host = window.location.host;
var href = window.location.href;
var source = document.getElementsByTagName('html')[0].innerHTML;
var target_list = [];
var js_result = [];
var source_href = source.match(/href=['"].*?['"]/g);
var source_src = source.match(/src=['"].*?['"]/g);
var script_src = source.match(/<script [^><]*?src=['"].*?['"]/g);
if(source_href){
for(var i=0;i<source_href.length;i++){
var u = deal_url(source_href[i].substring(6,source_href[i].length-1));
if(u){
target_list.push(u);
}
}
}
if(source_src){
//var js_result = [];
for(var i=0;i<source_src.length;i++){
var u = deal_url(source_src[i].substring(5,source_src[i].length-1));
if(u){
target_list.push(u);
var xhr = new XMLHttpRequest();
xhr.open("GET", u, true);
xhr.send();
xhr.onreadystatechange = function() {
var src = this.responseText;
var script_url = src.match(/( https?|http|ftp|file):\/\/[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]/g);
if(script_url){
for(var t=0;t<script_url.length;t++){
var y = script_url[t];
if(y){
js_result.push(y);
}
}
}
}
}
}
}
console.log(js_result)
console.log(target_list)
问题是: console 打印出来的 js_result 和 target_list 是不同形式的(就好像一个数组是空的,一个数组包含了值), 如图:
点开空的那个▶️, 就能看到结果,但是没有直接显示出来
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.