我有产品网格,每个产品调用javascript,其唯一ID用于打开iframe窗口。 在调用第一个时它可以正常工作但在调用第二个时它什么都不做。 我将有大约20种产品需要调用该脚本。
我希望如果可以调用第二个iframe,第一个关闭,第二个关闭,等等。
这是脚本:
function init() {
test = true;
document.getElementById('go<?php echo $product['product_id']; ?>').onclick = function() {
ifr = document.createElement('iframe');
ifr.setAttribute('src', this.href);
ifr.src = this.href;
ifr.setAttribute('id', 'iframe_a<?php echo $product['product_id']; ?>');
if (test == true) {
ifr.onreadystatechange = function() {
if (this.readyState == 'complete<?php echo $product['product_id']; ?>') {}
}
document.getElementById('iframe_a_container<?php echo $product['product_id']; ?>').appendChild(ifr);
test = false;
}
return false;
}
}
window.addEventListener ?
window.addEventListener('load', init, false) :
window.attachEvent('onload', init);
Iframe代码:
<div id="iframe_a_container<?php echo $product['product_id']; ?>"> </div>
和按钮代码:
<a id="go<?php echo $product['product_id']; ?>" href="index.php?route=product/quickview&product_id=<?php echo $product['product_id']; ?>">Quick View</a>
答案 0 :(得分:0)
我假设您之前(在onclick之外)声明了ifr;如果没有,你应该这样做(所以你有一个参考来访问它)并尝试这个修改过的onclick工作:
document.getElementById('go<?php echo $product['product_id']; ?>').onclick = function() {
$(ifr).remove(); // Remove it from the screen
ifr = null;
ifr = document.createElement('iframe');
ifr.setAttribute('src', this.href);
ifr.src = this.href;
ifr.setAttribute('id', 'iframe_a<?php echo $product['product_id']; ?>');
if (test == true) {
ifr.onreadystatechange = function() {
if (this.readyState == 'complete<?php echo $product['product_id']; ?>') {}
}
document.getElementById('iframe_a_container<?php echo $product['product_id']; ?>').appendChild(ifr);
test = false;
}
return false;
}