我希望从我的网站链接获取html页面并在我的 MultimapBuilder.treeKeys(new Comparator<Pair<Double, Double>>() {
@Override public int compare(Pair<Double, Double> p1, Pair<Double, Double> p2) {
return ComparisonChain.start()
.compare(p1.first(), p2.first())
.compare(p1.second(), p2.second())
.result();
}
}).arrayListValues().build();
页面中再次将其注入Google Chrome扩展程序
我需要使用JavaScript代码,我不想要任何jquery因为
我之前用jquery做了一部分
popup.html
但我希望JavaScript代码从链接中获取html,我想在代码中定义它
例如我有$.get('some website ', function(data) {
$('.result').html(data);
alert('Load was performed.');
});
这样的网站
我需要使用page.html的sourse代码并将其注入popup.html
这意味着扩展程序会显示www.something.com/page.html
我希望这是一个很好的解释
答案 0 :(得分:1)
这应该可以解决问题,但要注意将一堆HTML注入另一个文档的security implications - 这是导致XSS的一种简单方法:
var element = ... // some element in your popup.html document
var request = new XMLHttpRequest();
request.onload = function() {
element.innerHTML = this.responseText;
};
request.open("get", "http://www.some.com/page.html", true);
request.send();
您还需要为清单添加权限,以允许您的扩展程序将跨站点XHR添加到"http://www.some.com"
。假设没有其他权限:
"permissions": [
"http://www.somecom/"
],
从安全POV ,只需向some.com询问JSON数据,通过JSON.parse()
解析,然后在Chrome扩展程序中构建您需要的任何用户界面更有意义。使您的扩展程序更加稳定/灵活,因为所有用户界面都包含在Chrome扩展程序中,而不是分布在扩展程序和some.com上。
或者,如果page.html
足够静态,请将其捆绑到您的扩展程序中并使用与上述类似的代码段注入,但使用chrome.extension.getUrl('page.html')
作为request.open()
的网址。
无论您的page.html
是来自其他网站还是来自扩展程序,您都可能需要修复图片,脚本,样式表的相对网址(Chrome在此处不会为您这样做),例如通过在其src / href属性前添加http://www.some.com/
前缀,将它们再次指向预期的资源。