2016-07-28 73 views
0

我在身体下面的HTML:更新一个名为“点击数”使用JavaScript变量函数的变量

<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变量(比如下面的变量x)下的被调用函数的'地址'变量:

<script type="text/javascript"> 
var x = "NewURL" 
</script> 

现在是: 有很多例子,其中popupCenter被调用。而且,变量x正在通过下拉列表的值决定。 popupCenter调用的每个实例都使用唯一地址进行更新(使用从下拉列表中获得的值推导出)。所以,我真的不能使网址静态。

有3个变量,例如x,每个变量都是使用从下拉列表中获得的值创建的URL。现在应该将每个创建的URL传递给在三个不同实例中调用的popupcenter的地址/ URL。

在对下拉进行任何更改之前,每个popupCenter函数调用(在此称为地址)中都保留一个固定的地址值。它是需要用JavaScript中动态创建的变量更改的地址变量。

如果可以帮忙的话,那将会很棒。我不善于web开发。

回答

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 
 
}
<a href="#" onclick="test1(x)">Test test1(x)</a> 
 
<a href="#" onclick="test2()">Test test2()</a> 
 

 
<button onclick="updateX()">Update X</button>

+0

有许多情况,其中popupCenter正在被呼叫。而且,变量x正在通过下拉列表的值决定。 popupCenter调用的每个实例都使用唯一地址进行更新(使用从下拉列表中获得的值推导出)。所以,我真的不能使网址静态。 –

+0

嗯,这不是你在你的问题中提出的问题,但是如果X是全球性的,它将会起作用。 – epascarello

+0

如果我只是将onclick改为使用变量x,那么在用户对下拉列表进行任何更改之前保留预定义URL的条件将不起作用... –