2016-07-28 74 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的條件將不起作用... –