我怀疑这是一个全新的问题,但我似乎错过了这里的基础知识。我并不擅长编码,并且拥有使用各种语言的一生经验(27年),但插件流程让我望而却步。
我在php&amp ;;中开发了自定义书签系统。 js,它的效果非常好,而且在开发它的过程中我已经使用了几个月。
我只想在活动选项卡中获取页面的url并将其传递给我的php处理程序。我希望我的网站脚本将html表单返回到弹出窗口。我可以想到“应该”工作的千种方式。
我发现的所有代码示例似乎都过分复杂应该是一个简单的任务。
简而言之,我只想要:
<script type="text/javascript">
<!--
var loadurl = "http://my.site.com?theUrl=" + window.location;
location.href = loadurl;
//-->
</script>
将该页面显示在弹出窗口中。到目前为止,我很茫然。甚至尝试了ajax调用等。 有人能告诉我如何实现这个简单的任务吗?也许我可以开始用信息编写扩展名。
对于记录,我发现的大部分示例都在manifest 2.0
下弃用答案 0 :(得分:0)
Manifest 2.0引入了一项新功能contentSecurityPolicy。默认情况下会阻止所有外部资源。对于最佳实践,您应该在扩展中包含所有需要的资产文件。扩展和服务(php端)之间的通信只是使用XHR2的数据。
所以,为了使书签扩展工作,我猜你需要这样的东西:
将您的服务的域添加到权限数组
{
...
permissions: ['*://my.site.com/*', 'tabs']
}
将所有javascript从popup.html
移至popup.js
。在popup.js
中,您为书签服务创建了一个ajax请求。 More document here
function addBookmark(url) {
var xhr = new XMLHttpRequest();
xhr.open("GET", "http://my.site.com/new_bookmark.php?url=" + encodeURIComponent(url), true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
var resp = xhr.responseText;
// handle service result here
}
}
xhr.send();
}
chrome.tabs.getSelected(null,function(tab) {
addBookmark(tab.url);
});