首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

JavaScript 無法找到物件方法:Flash 外部介面介入排查

     編輯:程式設計綜合問答

現象

頁面透過 thisMovie("test").dothing() 呼叫物件方法,HTML/JS 中找到 test 物件但無 dothing 方法。

根本原因

thisMovie 函數回傳 window["test"] (IE) 或 document["test"] (其他),這是 Flash/ActiveX 物件的 DOM 節點。dothing 定義在 Flash 內部 (ActionScript),透過 ExternalInterface.addCallback 公開給 JS。瀏覽器 JS 無法直接看到 Flash 內部函數。

驗證步驟

  1. 檢查 HTML 是否有 <object id="test" ...> 或 <embed name="test" ...>。
  2. Flash 原始碼 (`.as`) 中是否有:
    ExternalInterface.addCallback("dothing", doSomething);
  3. 瀏覽器 Console 執行 thisMovie("test").dothing() 觀察是否報錯。

現代替代方案

  • Flash 已停止支援,建議改用 HTML5 Canvas/WebGL (Three.js, PixiJS) 或 WebAssembly 實現同樣功能。
  • 若必須維護舊專案,確保瀏覽器仍支援 Flash Player (已極少見)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved