PHP/JS:在iframe打开时自动点击按钮
问题描述:
我试图在打开结果页面时自动点击iframe中的按钮(将文章添加到购物车)。PHP/JS:在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>
答
您提交的表格(导致页面重新加载)在执行click()
行动。你需要检查表单是否以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>
它增加了获得第一种形式后,参数submitted
在JavaScript提交&检查,如果该参数设置(如果没有设置 - 执行按钮点击)
的网页没有无限加载了,但每手动页面加载将所有文章添加到购物车... – Clementine