Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript PHP/JS:iframe打开时自动单击按钮_Javascript_Php - Fatal编程技术网

Javascript PHP/JS:iframe打开时自动单击按钮

Javascript PHP/JS:iframe打开时自动单击按钮,javascript,php,Javascript,Php,当从结果页面打开iframe时,我试图自动单击iframe中的一个按钮(将文章添加到购物车) 我的代码正在运行,但是页面一直在加载,它一直在添加到购物车中,没有停止 结果页: <form> <a href='#cart'>Add</a> <div id='cart'> <iframe src="http://domaine.com/inframe.php" name = 'myIframe' ></iframe> </

当从结果页面打开iframe时,我试图自动单击iframe中的一个按钮(将文章添加到购物车)

我的代码正在运行,但是页面一直在加载,它一直在添加到购物车中,没有停止

结果页:

<form>
<a href='#cart'>Add</a>
<div id='cart'>
<iframe src="http://domaine.com/inframe.php" name = 'myIframe' ></iframe>
</div>
</form>

IFRAME:

<form action='' method='post'>
<input type='submit' id ="iframeAdd" name='iframeAdd' value='ADD'>
<input  type='hidden' name='quantity'>
<input type='hidden' name='item' value='1' />
<input type='hidden' name='price' value='20' />
<script>
window.onload = function(){
  document.getElementById('iframeAdd').click();
}
</script>
<?php
if ( isset( $_POST['iframeAdd'] ) ) {
echo 'ADDED !';
} else echo 'ERROR';
?>
</form>

window.onload=函数(){
document.getElementById('iframeAdd')。单击();
}
您正在提交表单(导致页面重新加载),同时执行
单击()
操作。您需要检查表单是否以javascript提交。例如:

<form action='?submitted' method='post'>
<input type='submit' id ="iframeAdd" name='iframeAdd' value='ADD'>
<input  type='hidden' name='quantity'>
<input type='hidden' name='item' value='1' />
<input type='hidden' name='price' value='20' />
<script>
  function getParameterByName(name, url) {
    if (!url) url = window.location.href;
    name = name.replace(/[\[\]]/g, "\\$&");
    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
        results = regex.exec(url);
    if (!results) return null;
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, " "));
}
window.onload = function(){
  if(getParameterByName('submitted') === null){
    document.getElementById('iframeAdd').click();
  }
}

</script>
<?php
if ( isset( $_POST['iframeAdd'] ) ) {
echo 'ADDED !';
} else echo 'ERROR';
?>
</form>

函数getParameterByName(名称、url){
如果(!url)url=window.location.href;
name=name.replace(/[\[\]]/g,\\$&);
var regex=new RegExp(“[?&]”+name+”(=([^&#]*)和|#|$),
结果=regex.exec(url);
如果(!results)返回null;
如果(!results[2])返回“”;
返回组件(结果[2]。替换(/\+/g,”);
}
window.onload=函数(){
if(getParameterByName('submitted')==null){
document.getElementById('iframeAdd')。单击();
}
}

它在第一次表单提交后添加get参数
submitted
,并在javascript中检查是否设置了此参数(如果未设置-执行按钮单击)

页面不再无限期加载,但每次手动页面加载都会将所有文章添加到购物车中。。。