-1

更新:

答案可以在这里找到:

中心窗口。在表单提交时打开

==================================================== ====

我正在尝试将表单提交到以屏幕为中心的弹出窗口中。我在谷歌搜索时发现了几个 js 片段。

请记住,我可以理解 html/css,但不能理解 javascript。

<html>

  <head>
    <script type="text/javascript">
      function directions(sacred) {
        var x = screen.width / 2 - 700 / 2;
        var y = screen.height / 2 - 450 / 2;
        window.open(sacred.action, 'Directions', 'height=485,width=700,left=' + x + ',top=' + y);
      }
    </script>
  </head>

  <body>
    <form action="http://maps.google.com/maps" method="get" target="Directions"
    onsubmit="Directions=directions(sacred)">
      <p>
        <input class="directions-input" id="saddr" name="saddr" type="text" placeholder="enter zip-code"
        value="enter zip-code" onfocus="this.value = this.value=='enter zip-code'?'':this.value;"
        onblur="this.value = this.value==''?'enter zip-code':this.value;" />
        <input type="submit" class="directions-submit" />
        <input type="hidden" name="daddr" value="210+East+Northampton+Street,+Bath,+PA"
        />
        <input type="hidden" name="hl" value="en" />
      </p>
    </form>
  </body>

</html>

小提琴在这里

表单提交到新选项卡,并且不运行函数或 window.open

提前感谢任何人。

PS我刚刚掌握了这个stackoverflow的东西。

4

2 回答 2

0

你已经写好了,但是在函数中使用它总是更好,这样你就不会迷路。

使用此功能:

function openCenteredWindow(url, name) {
    var width = 700;
    var height = 450;
    var left = parseInt((screen.availWidth/2) - (width/2));
    var top = parseInt((screen.availHeight/2) - (height/2));
    var windowFeatures = "width=" + width + ",height=" + height + ",status,resizable,left=" + left + ",top=" + top + "screenX=" + left + ",screenY=" + top;
    myWindow = window.open(url, name, windowFeatures);
}

你会看到有什么不同。

于 2013-01-07T23:23:15.913 回答
0

要不提交您的onsubmit函数必须的表单return false

function directions(sacred) {
    var x = screen.width / 2 - 700 / 2;
    var y = screen.height / 2 - 450 / 2;
    window.open(sacred.action, 'Directions', 'height=485,width=700,left=' + x + ',top=' + y);
    return false;
  }

和形式:

  <form action="http://maps.google.com/maps" method="get" target="Directions"
  onsubmit="return directions(sacred);">

我不确定变量sacred的来源。您还将当前directions()函数的返回值存储到其中,Directions但该函数当前不返回任何内容。但是我无法从您的代码中弄清楚这一点,但是通过上面的示例,您应该了解如何使其工作。

于 2013-01-07T23:42:37.223 回答