从我的网站获取HTML页面并将其注入我的chrome扩展中

时间:2015-07-18 19:16:43

标签: javascript html google-chrome google-chrome-extension

我希望从我的网站链接获取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

我希望这是一个很好的解释

1 个答案:

答案 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/前缀,将它们再次指向预期的资源。