我身体中有以下html:
<a onclick="popupCenter(address,'Title','500','500');" href="javascript:void(0);" id="myID">
调用以下函数:
<script>
function popupCenter(url, title, w, h) {
var left = (screen.width/2)-(w/2);
var top = (screen.height/2)-(h/2);
return window.open(url, title, 'toolbar=no, location=no,directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width='+w+', height='+h+', top='+top+', left='+left);
}
</script>
我需要更换地址&#39;带有javascript变量的onclick选项下被调用函数的变量(比如下面的变量x):
<script type="text/javascript">
var x = "NewURL"
</script>
现在的问题是: 有许多实例正在调用popupCenter。而且,变量x是通过下拉列表的值来决定的。 popupCenter调用的每个实例都使用唯一地址进行更新(使用从下拉列表中获取的值推断)。所以,我真的不能让网址静止。
有3个变量,比如x,每个变量都是使用从下拉列表中获取的值创建的URL。现在,每个创建的URL都应该传递给在三个不同实例中调用的popupcenter的地址/ url。
在对下拉列表进行任何更改之前,每个popupCenter函数调用中都会有一个固定的地址值(此处称为地址)。这是地址变量,需要使用动态创建的变量进行更改。
如果有人可以提供帮助,那就太棒了。我不擅长网络开发。
答案 0 :(得分:2)
不使用url
,而是使用x
,因为它是全局的,您可以在函数中引用它。
window.open(x, title, .... )
其他选项是只更改onclick以使用变量x
onclick="popupCenter(x,'Title','500','500');"
没有window.open的快速演示,只是一个控制台行,显示更新后引用变量将在函数内部更新。
var base = "TEST";
var x = "1";
function test1 (y) {
console.log(base + " : " + y);
}
function test2 () {
console.log(base + " : " + x);
}
function updateX () {
x = new Date().toLocaleString(); //just generate something to test
}
&#13;
<a href="#" onclick="test1(x)">Test test1(x)</a>
<a href="#" onclick="test2()">Test test2()</a>
<button onclick="updateX()">Update X</button>
&#13;