使用Javascript变量打开Iframe



我试图将一个javascript变量传递到我的iframe的url中,但不知怎么的,我做错了什么;有人能告诉我我犯了哪个错误吗?

代码:

function getPrice() {
var plans = document.getElementsByName('plans');
for (index=0; index < plans.length; index++) {
if (plans[index].checked) {
return plans[index].getAttribute('data-price');
break;
}
}

这会返回;50、100或150作为值。

<button OnClick="javascript:alert(getPrice() + '.00');">Bedrag</button>

这个按钮给了我想要添加到Iframe的url中的所需值:

<iframe width="350" height="150" style="border-left:0px;border-top:0px;border-right:0px;border-bottom:0px;" src="https://www.website.com/create-ideal-payment.php?betaling="+ getPrice() + ".00"></iframe>

不幸的是,I帧打开时会从"getPrice()"函数中删除所需的输出。

将正确的金额传递到Iframe中的url,我的想法的哪一部分是错误的?

感谢所有的支持/帮助!

KR,阿尔文

在javascript本身中设置iFrame URL。

function getPrice() {
var plans = document.getElementsByName('plans');
var paymentFrame = document.getElementById('paymentFrame');
var selectedPlan;
for (index=0; index < plans.length; index++) {
if (plans[index].checked) {
selectedPlan = plans[index].getAttribute('data-price');
break;
}
}

paymentFrame.src="https://www.website.com/create-ideal-payment.php?betaling="+ selectedPlan + ".00"

return selectedPlan;
}
<input type="checkbox" name="plans" data-price="50">
<input type="checkbox" name="plans" data-price="100">
<input type="checkbox" name="plans" data-price="150">
<button OnClick="javascript:alert(getPrice() + '.00');">Bedrag</button>
<iframe id="paymentFrame" width="350" height="150" style="border-left:0px;border-top:0px;border-right:0px;border-bottom:0px;"></iframe>

在HTML主

注意iframe 的id

<iframe width="350" id = "IframeID" height="150" style="border-left:0px;border-top:0px;border-right:0px;border-bottom:0px;" ></iframe>

主HTML中引用的JavaScript

function getPrice() {
var plans = document.getElementsByName('plans');
for (index=0; index < plans.length; index++) {
if (plans[index].checked) {
document.getElementById('result').innerText = 50;
return 50;//plans[index].getAttribute('data-price');
break;
}
}
// For testinhg this is the value will be injected in URL of iframe as query string
return 50
}

window.addEventListener('DOMContentLoaded', (event) => {
console.log(getPrice());
document.getElementById('IframeID').src = "somepage.html?seed=" + getPrice() + ".00";
});

IFrame Src HTML

<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>TEST in IFRame</h1>
</body>
<script>
function getParams() {
var params = {},
pairs = document.URL.split('?')
.pop()
.split('&');
for (var i = 0, p; i < pairs.length; i++) {
p = pairs[i].split('=');
params[ p[0] ] =  p[1];
}     
return params;
}
var parameters = getParams();
for( var i in parameters ){
console.log( i , parameters[i] );
}
</script>
</html>

感谢大家的投入,我已经解决了这个问题。

最新更新