2012-11-21 73 views
0
onclick='showthread(); myjsfunction()' language='vbscript'> 

有點上述的效果,但不起作用。 showthread是一個vbscript函數,myjsfunction是一個javascript函數。如何在相同的onclick = event上調用javascript和vbscript函數?

謝謝。

+0

客戶端VBScript?在2012年?爲什麼? –

+0

這是一個HTA :) –

+0

這是行不通的。你剛剛混合了服務器端和客戶端代碼。以不同方式解決問題。告訴我們你真正想要做什麼 – polin

回答

0

我不是很熟悉的VBScript,但在我看來,你可以做類似

function myjsfunction() { 
    window.location = "vbscript:showthread();" 

    // other JS code 
} 

調用JS從VBScript函數。這當然很冒險,但我不知道有更好的方法。

但是,如果可能,最好是完全轉換爲JavaScript。

+0

我們必須做window.location嗎?我們不能把它放在同一個窗口嗎? –

1

在我看來,你最好的選擇是放棄onxyz處理程序,並通過DOM   —或兩者的組合正確連接東西。

比如你的元素可以通過onxyz(我複製你的那個語法)掛鉤VBScript的:

<div id="mydiv" onclick="showthread();" language="vbscript"> 

...並在文檔中<script>標籤可以掛鉤的JavaScript的:

<script> 
document.getElementById("mydiv").attachEvent("onclick", myjsfunction); 
</script> 

(我使用attachEvent那裏,因爲我知道你使用的是基於IE的引擎,如果你使用VBScript)。

當然或者,具有兩個<script>元件(一個JavaScript和一個VBScript)的和通過DOM掛鉤兩種功能:

<div id="mydiv"> 

<script> 
document.getElementById("mydiv").attachEvent("onclick", myjsfunction); 
</script> 

<script type="application/x-vbscript"> 
document.getElementById("mydiv").attachEvent "onclick", showthread 
</script> 

(或任何正確的MIME類型爲VBScript的。或者,您可以使用基於IE的引擎使用language="VBScript"。)

+0

如何將事件附加到表格行?因爲這就是onclick事件所在的位置

+0

@ like-a-trainee:使用各種DOM方法來識別表格行 - 「getElementById」,「getElementsByTagName」,「rows」屬性...或者,當然,因爲'click'事件氣泡,只需將它掛在'table'或'tbody'元素上並引用'event.target'。 –