我正在编写一个chrome扩展程序,我有一个弹出窗口。当用户身份验证失败时,弹出窗口会显示登录失败的通知,并且我希望在该通知中包含指向我的扩展程序选项页的链接。所以我在弹出窗口javascript文件中执行此操作:
function notifyHTML(html) {
$("#notification_bar").html(html);
$("#cont").fadeIn(30).delay(3000).fadeOut(300); //notify
}
function onLoginFailed() {
console.log("From extension: Login failed. Check username-password");
notifyHTML("Login Failed. Update in <a href=\"chrome-extension://__MSG_@@extension_id__/html/options.html\">Options</a> page");
}
相关HTML:
<div>
<div id="cont"><div id="notification_bar"></div></div>
<!-- More HTML -->
</div>
但这样做会导致该通知中的链接无效。怎么解决这个问题?
答案 0 :(得分:2)
使用以下代码
function onLoginFailed() {
console.log("From extension: Login failed. Check username-password");
retStr = "Login Failed. Update in <a href=\"chrome-extension://" + chrome.i18n.getMessage("@@extension_id") + "/html/options.html\">Options</a> page";
notifyHTML(retStr);
}
您应该使用 chrome.i18n.getMessage()
API来使用任何预定义的消息。
答案 1 :(得分:0)
更好的选择是使用chrome.extension.getURL
:
function onLoginFailed() {
console.log("From extension: Login failed. Check username-password");
notifyHTML('Login Failed. Update in <a href="' + chrome.extension.getURL("/html/options.html") + '">Options</a> page');
}
http://developer.chrome.com/extensions/extension#method-getURL