2011-07-24 29 views
0

我嘗試使用此代碼的URL通過書籤來改變的onclick功能:無法通過JavaScript的onclick動態變化:書籤

javascript: document.getElementById('Button1').onclick = function(){alert('foo')};void(0); 

我可以改變按鈕的價值,但只是不onclick函數。它甚至有可能嗎? 謝謝^^

一些注意事項:我也嘗試把代碼放在一個.js文件,並使用createElementId創建外部的.js文件,但它似乎仍然沒有工作:/

+0

它是否引發任何錯誤? –

+0

@Jububed它出現document.getElementById('Button1')爲空:/ – imNewbAtJS

+0

你測試什麼瀏覽器? – Joe

回答

0

此代碼工作。所以唯一的選擇是Button1不是該頁面上元素的ID。

例如:

<div id="Button1">Button</div> 

如果頁面上的元素看起來像,你會得到你alert ('foo');

+0

我已經給該按鈕的ID,這就是我可以使用相同的代碼更改按鈕的值:/ – imNewbAtJS

+0

當你說'改變數值'時,我可以看到這個代碼嗎? – Joe

+0

javascript:document.getElementById('button1')。value =「Change」; void(0); – imNewbAtJS

0

你的代碼似乎工作...

嘗試插入這個代碼進入w3schools jseditor http://www.w3schools.com/js/tryit.asp?filename=tryjs_events

<html> 
<body> 

<button type="button" id="Button1" onclick="alert('Some action');">Action!!</button> 

<button type="button" id="Button2" onclick="document.getElementById('Button1').onclick = function(){alert('another action')};">Change onclick</button> 

</body> 
</html> 
+0

我在另一個域上運行小書籤,所以我不能編輯html,並且儘量保持我的代碼儘可能短,但我會嘗試執行createElement('按鈕')並查看它是否會改變它 – imNewbAtJS

1

您錯過了結尾分號以終止警報呼叫。一旦你縮進它就更容易找到:

document.getElementById('Button1').onclick = function() { 
    alert('foo'); 
};