<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>
现在在这个桌面通知中我得到一个带有tags的html。我想删除那些标签,我想用html页面替换$ aa.html。 但是,如果我将此脚本放在另一个HTML中,那么如何进行通信以及我必须在清单中进行哪些更改?
答案 0 :(得分:6)
传递数据的最简单方法就是使用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');