我的正文中有以下 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>
我需要用 JavaScript 变量替换 onclick 选项下被调用函数的“address”变量(例如下面的变量 x):
<script type="text/javascript">
var x = "NewURL"
</script>
现在的问题是: 在很多情况下,popupCenter 都会被调用。而且,变量 x 是通过下拉列表的值决定的。 popupCenter 调用的每个实例都会使用唯一的地址进行更新(该地址是使用从下拉列表中获得的值推导出来的)。所以,我真的无法将 url 设为静态。
有 3 个变量,例如 x,每个变量都是使用从下拉列表中获取的值创建的 URL。现在,每个创建的 URL 都应该传递到在三个不同实例中调用的 popupcenter 的地址/url。
在对 dropdown 进行任何更改之前,每次 popupCenter 函数调用中都会保留一个固定的地址值(此处称为地址)。这是需要用 javascript 动态创建的变量来更改的地址变量。
如果有人能帮忙就太好了。我不擅长网络开发。
最佳答案
不要使用 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
}
<a href="#" onclick="test1(x)">Test test1(x)</a>
<a href="#" onclick="test2()">Test test2()</a>
<button onclick="updateX()">Update X</button>
关于javascript - 使用javascript变量更新 "Onlick"中调用的函数的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38638037/