2010-10-07 160 views
1

我正在寫一個greasemonkey腳本,它創建一個自動完成的搜索類型框,使得從網頁上的大型下拉列表中選擇更容易。下拉列表中列出了當我改變使用javascript選擇時我無法觸發的變化代碼。有任何想法嗎?觸發內聯onchange javascript

回答

1

假設頁面有這樣的事情:用

<input onchange="someFunction()"> 

那麼你的Greasemonkey的JavaScript可以改變輸入值,然後調用函數:

unsafeWindow.someFunction(); 
+0

啊。這工作。關於如何停止提交表單的輸入密鑰的任何想法? – Joren 2010-10-07 01:24:09

+0

@Joren:打開一個新的問題,併發布詳細信息。一般來說,你會改變在事件處理程序中綁定事件處理程序和/或使用'event.preventDefault();','event.stopPropagation();'和'return false;'的方式。 – 2010-10-07 01:40:48

0

可以觸發的onchange「真」 :

從內GM:

unsafeWindow.dropdownObject.onchange(); 

從網頁:

dropdownObject.onchange(); 
0

對於tampermonkey,這個工程根本不使用unsafewindow。

<select id="dd_id", onchange="myfunction()"> 

然後在userscript下面的代碼觸發onchange事件:

假設dropdownbox在網頁像定義

document.getElementById('dd_id').onchange(); 

此外,建議避免在文檔使用的unsafewindow 。