我的代码如下所示:
<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);
return false;
}
</script>
<form action="http://maps.google.com/maps" method="get" target="Directions"
onsubmit="return directions(sacred);">
我不懂js,所以如果看起来很草率,请放轻松。
我可以让它工作正常:
<form action="http://maps.google.com/maps" method="get" target="Directions"
onsubmit="Directions=window.open('about:blank','Directions','width=600,height=400');">
尝试将onsubmit
连接到上述脚本后,我迷路了。我甚至不知道上述功能是否可靠。
我在这里打开了引擎盖:jsFiddle
问题是表单提交到新选项卡,并完全忽略window.open
。
提前感谢您的帮助。
答案 0 :(得分:2)
试试这个:http://jsfiddle.net/333Qy/1/
<script>
function directions(sacred) {
var x = screen.width / 2 - 700 / 2;
var y = screen.height / 2 - 450 / 2;
console.info(sacred);
window.open(sacred.action, 'Directions', 'height=485,width=700,left=' + x + ',top=' + y);
return false;
}
</script>
<p>
<form action="http://maps.google.com/maps" method="get" target="Directions"
onsubmit="directions(this);">
<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" />
</form>
</p>
onsubmit应该是一个函数调用。此外,神圣是不确定的。我在上面的代码中进行了更改
答案 1 :(得分:2)
<form action="http://maps.google.com/maps" method="get" target="Directions"
onsubmit="Directions=window.open('about:blank','Directions','width=600,height=400,left={left},top={top}'.replace('{left}', screen.width/2-700/2).replace('{top}', screen.height/2-450/2));">..</form>
我不知道为什么,但我并不总是工作 http://jsfiddle.net/greatghoul/MCRAG/embedded/result/
代码在这里。