<html>
<head>
<script src="http://code.jquery.com/jquery-1.4.2.js"></script>
<script>
chrome.browserAction.onClicked.addListener(function(tab) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
var $ajaxData = xhr.responseText;
var hidden = document.createElement ( 'div' );
hidden.id = 'hiddenel';
$("body").append ( hidden );
$("#hiddenel").html ($ajaxData);
var $aa = $("#hiddenel").find('div .somediv');
var notification = webkitNotifications.createNotification(
'some msg',
'some msg',
$aa.html());
notification.show();
} else {
alert("Unable to connect...");
}
}
}
var url = some url;;
xhr.open('GET', url, true);
xhr.send();
});
</script>
</head>
</html>
现在,在这个桌面通知中,我得到了一个带有标签的html,我想删除这些标签,也就是说,我想用一个html页面替换$aa.html。但是如果我将这个脚本放在另一个HTML中,那么如何进行通信,以及我必须在清单中进行哪些更改?
发布于 2011-02-12 18:49:20
传递数据的最简单方法就是使用url参数:
webkitNotifications.createHTMLNotification('notification.html?data=' + escape(data)).show();
然后在接收端,我只需使用jQuery URL Parser plugin来解析url参数。
PS。看看你的代码,我建议将jquery.js放入扩展文件夹,这样加载速度会快很多。
另外,如果这段代码的唯一目的:
var hidden = document.createElement ( 'div' );
hidden.id = 'hiddenel';
$("body").append ( hidden );
$("#hiddenel").html ($ajaxData);
仅仅是为了能够运行$("#hiddenel").find('div .somediv');
,然后您可以使用以下命令重写所有内容:
var $aa = $($ajaxData).find('div .somediv');
https://stackoverflow.com/questions/4976760
复制