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

时间:2016-08-24 11:34:20

标签: javascript php

我从结果页面打开时,尝试自动点击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>

1 个答案:

答案 0 :(得分:1)

您在执行click()操作时提交表单(导致重新加载页面)。您需要检查表单是否在javascript中提交。 E.g:

<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>

在第一次表单提交后添加参数submitted&amp;如果设置了此参数,则检查javascript(如果未设置 - 执行按钮单击)