我目前正在使用javascript来防止每次用户点击它时在多个浏览器标签上打开链接。假设我的链接目的地是google,如果不存在,它将创建一个新标签,但如果存在相同的目的地则刷新。到目前为止它运作良好。
这是代码。
链接
<div id="container">
<a href="https://www.google.com" target="_blank">Google</a>
</div>
的JavaScript
<script>
document.getElementById("container").onclick = function(test){
if (test.target.tagName === "A")
window.open(test.target.href, test.target.href);
return false;
}
</script>
我的问题是,如何在我的表单上使用相同的JavaScript,效果相似?我的意思是如果用户提交我的表格。如果不存在,它将在提交时创建新选项卡。但如果选项卡存在,则在相同选项卡上重新提交。我试图更改JavaScript,但无法使其作为普通链接工作。
这是我的表格
<form name='form1' action='/newform.php' method='post' target='_blank'>
<input type='hidden' name='test' value=''>
<input type='image' src='../data/images/myimages.gif' width='100px' height='30px' alt=''>
</form>
答案 0 :(得分:0)
如何使用会话变量?
还可以将ID用于javascript。
<?php
//Check if session has not been started.
if (session_status() == PHP_SESSION_NONE)
{
session_start();
}
//If it has not been set, set no default.
if (!ISSET($_SESSION['hasSubmit'])
{
$_SESSION['hasSubmit'] = "no";
}
if ($_SESSION['hasSubmit'] == "no")
{
//Execute code for no
echo "
<form name='form1' id='firstSubmit' action='/newform.php' method='post' target='_blank'>
<input type='hidden' name='test' value=''>
<input type='image' src='../data/images/myimages.gif' width='100px' height='30px' alt=''>
</form>";
}
else if($_SESSION['hasSubmit'] == "yes")
{
//Execute code for yes
//Edit your form properties here to your likes.
echo "
<form name='form1' action='#' method='post' target='_newblank'>
<input type='hidden' name='test' value=''>
<input type='image' src='../data/images/myimages.gif' width='100px' height='30px' alt=''>
</form>";
}
?>
在newform.php中设置:
$_SESSION['hasSubmit'] = 'yes'
现在是javascript:
$('firstSubmit').click(function(){
location.reload;
});
这应该可以解决问题
答案 1 :(得分:0)
您可以尝试这样的事情:
<script type='text/javascript'>
function formSubmit() {
window.open("about:blank","newWindow");
}
</script>
<form name='form1' action='/newform.php' method='post' onSubmit='formSubmit()' target='newWindow'>
<input type='hidden' name='test' value=''>
<input type='image' src='../data/images/myimages.gif' width='100px' height='30px' alt=''>
</form>
基本上,这将在第一次提交表单时打开新窗口,并且每个其他时间表单将提交到已打开的窗口。
请注意,window.open
可能被弹出窗口阻止程序阻止,而且通常是。