【问题标题】:Javascript Popup Box Will Not Pop UpJavascript 弹出框不会弹出
【发布时间】:2011-10-14 06:42:49
【问题描述】:

我正在尝试通过 javascript 打开一个窗口,但它一直在刷新,什么也没做。起初我以为它只是谷歌浏览器,但它在 Firefox 和 IE 中也是如此。不知道我的问题是什么。 JSFiddle 说了一些关于“POST”的内容,但我不确定。有什么建议吗?

http://jsfiddle.net/uBwvx:

function romantic()
{
    document.body.bgColor = "pink";
    document.body.style.color = "red";
    document.images[1].src = "rom_main.jpg";

    // Searched online to find a script to override some styles. 
    // For loop with adding styles to each anchor didn't work for some reason. Kept being overriden somehow.
    var styleElement = document.createElement("style");
    styleElement.type = "text/css";
    if (styleElement.styleSheet) {
      styleElement.styleSheet.cssText = "a { color: red }";
    } else {
      styleElement.appendChild(document.createTextNode("a { color: red; }"));
    }
    document.getElementsByTagName("head")[0].appendChild(styleElement);
}

function adventure()
{
    document.body.bgColor = "#CDAA7D";
    document.body.style.color = "#5C3317";
    document.images[1].src = "adv_main.jpg";

    var styleElement = document.createElement("style");
    styleElement.type = "text/css";
    if (styleElement.styleSheet) {
      styleElement.styleSheet.cssText = "a { color: #5C4033 }";
    } else {
      styleElement.appendChild(document.createTextNode("a { color: #5C4033; }"));
    }
    document.getElementsByTagName("head")[0].appendChild(styleElement);
}

function relax()
{
    document.body.bgColor = "#B2DFEE";
    document.body.style.color = "#00688B";
    document.images[1].src = "rel_main.jpg";

    var styleElement = document.createElement("style");
    styleElement.type = "text/css";
    if (styleElement.styleSheet) {
      styleElement.styleSheet.cssText = "a { color: #000080 }";
    } else {
      styleElement.appendChild(document.createTextNode("a { color: #000080; }"));
    }
    document.getElementsByTagName("head")[0].appendChild(styleElement);
}

function family()
{
    document.body.bgColor = "#F0E68C";
    document.body.style.color = "#FFA54F";
    document.images[1].src = "fam_main.jpg";

    var styleElement = document.createElement("style");
    styleElement.type = "text/css";
    if (styleElement.styleSheet) {
      styleElement.styleSheet.cssText = "a { color: #6B4226 }";
    } else {
      styleElement.appendChild(document.createTextNode("a { color: #6B4226; }"));
    }
    document.getElementsByTagName("head")[0].appendChild(styleElement);
}

function open()
{
    mywindow = window.open("http://www.javascript-coder.com", "mywindow", "location=1,status=1,scrollbars=1,  width=100,height=100");
    mywindow.moveTo(0, 0);

}

【问题讨论】:

  • 如果您也可以在 StackOverflow 上发布您的代码,那就太好了。到 jsfiddle 的链接将来无法使用,您的问题将变得毫无用处。

标签: javascript popup window


【解决方案1】:

老兄,把你的函数名改成 winopen:open 是一个关键字,我确定:

http://jsfiddle.net/uBwvx/11/

【讨论】:

    【解决方案2】:

    您的问题是您在“窗口”范围内定义打开。 JavaScript 中定义的所有变量和函数都分配给窗口对象。以下具有相同的效果:

    var myVar = 10;
    window.myVar = 10;
    

    这样做:

    function open() { ... }
    window.open = function() { ... }
    

    所以你看,你的函数正在覆盖 window.open 并且实际上创建了一个堆栈溢出。任何其他函数名称都应该可以使用,例如 openWindow()

    【讨论】:

      【解决方案3】:

      我不确定这是否能解决您的问题,但您在 href 中缺少哈希。

      试试

      <a href="#" onclick="open()">Request A Brochure...</a>

      而不是

      <a href="" onclick="open()">Request A Brochure...</a>

      运气

      【讨论】:

        【解决方案4】:

        您使用了一个名为“open()”的函数。由于没有定义作用域,所以这个函数被放在“window”作用域中(这意味着:你覆盖了标准的“window.open()”函数。

        重命名你的函数,一切都应该工作;)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-07-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-04-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多