我是safari扩展开发的新手。我需要访问特定于网站的浏览器cookie。我知道这可以在chrome扩展开发中实现。如何通过safari扩展开发来做到这一点。
答案 0 :(得分:3)
从注入的脚本中,您可以将cookie发送到扩展程序。因此,在构建扩展时,您需要global.html和inject.js。
injected.js:
var cookies = document.cookie;
safari.self.tab.dispatchMessage("setCookies",cookies);
global.html(没有HTML标记):
var cookies = null;
function getCookies(incMsg) {
cookies = incMsg.message;
alert('I received them :) \n\n'+cookies);
}
safari.application.addEventListener("message",getCookies,false);
上面的代码会在您每次加载页面时将所有Cookie发送到扩展程序。那么你当然还需要读出cookie。我使用了以下函数(在global.html中):
function readCookie(name) {
if(cookies) {
var nameEQ = name + "=";
var ca = cookies.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
}
祝你好运!