使用带有jQuery的__MSG _ @@ extension_id__在Chrome Extension弹出窗口中创建链接

时间:2013-02-15 02:38:45

标签: javascript jquery google-chrome google-chrome-extension

我正在编写一个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>

但这样做会导致该通知中的链接无效。怎么解决这个问题?

2 个答案:

答案 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