HI,如何解決:「NPMethod調用非NPObject包裝JSObject」錯誤?
我試圖調用從JavaScript (火狐-3.0/Linux)或獲取異常flash對象定義的方法: 「NPMethod呼籲 非 NPObject包裹JSObject」。
如果我在window.document.flash_object.func()上使用eval,它會拋出 「在非NPObject上調用的NPMethod包裝JSObject」。
凡爲,如果我在側限定一個JavaScript功能的頁面下面給出 :
函數myFunc的(){ 返回flash_object.func();
}
,後來做window.document.myFunc的eval()函數,它工作正常。
我正在通過名爲Selenium的測試框架運行這兩個evals。 [eval(window.document.flash_object.func())和 eval(window.document.myFunc())]。
這個問題似乎是調用flash對象方法而不傳遞this參考的問題。這裏是示例html/js代碼來重現此問題:「NPMethod調用非NPObject包裝JSObject」。現在
<script>
function changeColor() {
mymovie.changeColor();
}
function getColorNP() {
var func = mymovie.getColor;
func();
}
</script>
<button type="button" onclick="getColorNP();">getColorNP</button>
<button type="button" onclick="getColor();">getColor</button>
getColorNP throws the exception
Error: NPMethod called on non-NPObject wrapped JSObject!
Source File: http://my.host/Colors/colors.html
getColorNP throws the exception
Error: NPMethod called on non-NPObject wrapped JSObject!
Source File: http://my.host/Colors/colors.html
,問題JavaScript的大師: 鑑於Flash對象和方法名,我該如何調用該對象的方法。比方說,一個函數有兩個參數:一個flash對象和一個方法名字符串。我想對該函數內的object.method()進行評估。如果可能的話,這是否可能,請你向我解釋如何做到這一點。由於Flash對象的方法不是標準的JavaScript函數,我認爲它不可能通過bind()函數進行綁定。還有其他的選擇嗎?
THX, 錢德拉
謝謝,這是一個救星...... – 2013-07-09 15:36:20
感謝的人,爲我節省了很多時間 – sleepycal 2014-05-07 14:27:06