javascript弹出消息只出现一次

时间:2013-10-16 12:04:40

标签: javascript html google-chrome-extension popup

我正在制作一个有两种模式的chrome扩展程序,每当点击该图标时,都会出现一条弹出消息,向用户解释他所处的模式。

问题是消息不会始终显示(弹出窗口本身会被打开)。

我试过谷歌搜索,但似乎没有很多人遇到这个问题。

有人可以帮忙吗?

这是我的代码:

function openWin1()
{
    myWindow=window.open('','','width=500,height=500,toolbar=0, location=0, status=0, menubar=0, scrollbars=0, resizable=0');
    myWindow.moveTo(500,100);
    myWindow.document.write("<p>mode1</p>");
    myWindow.focus();
}

function openWin2()
{
    myWindow=window.open('','','width=500,height=500,toolbar=0, location=0, status=0, menubar=0, scrollbars=0, resizable=0');
    myWindow.moveTo(500,100);
    myWindow.document.write("<p>mode2</p>");
    myWindow.focus();

}


chrome.browserAction.onClicked.addListener(onClickExtensionIcon);
function onClickExtensionIcon(tab) 
{
    if(hasAPrise)
    {
        hasAPrise = false;
        chrome.browserAction.setIcon({path: '/icon.png'});
        openWin1(); //open the first popup
    }
    else
    {
        openWin2(); //open the second popup
    }


}

提前致谢

编辑:我注意到,如果我最大化并最小化弹出几次,则会显示该消息。此外,当我检查弹出源时,它的消息是正确的。这是有趣的。任何想法如何解决这一问题。

1 个答案:

答案 0 :(得分:1)

写完之后你必须关闭文件:

myWindow.document.write("<p>mode2</p>");
myWindow.document.close();

更新:为目标命名可能也很有用,这样每次点击链接时都不会产生新窗口,也可能将内容包装在html中。

function openWin1(){
    myWindow=window.open('','popup1','width=500,height=500,toolbar=0,location=0,status=0,menubar=0,scrollbars=0,resizable=0');
    myWindow.moveTo(500,100);
    myWindow.document.write("<html><head><title>Popup1</title></head><body>I am popup 1</body></html>");
    myWindow.document.close();
    myWindow.focus();
    myWindow.resizeTo(499,499); //UPDATE: force resize because OP is getting improved results after window resize
}

我无法将其作为实际的Chrome扩展程序进行测试,但我已将a JSFiddle showing it working as html/js