ошибка при вызове метода апплета с JavaScript - PullRequest
0 голосов
/ 25 июля 2010

Я хочу прочитать идентификатор сетевой карты компьютера, используя апплет, который работает только на jre 1.6 и выше.даже апплет загружен успешно при загрузке страницы, я не смог вызвать методы апплета с javascript.когда я проверял функции апплета, вызывая javascipt из кнопки, он работал как положено.почему я не могу вызвать функцию апплета при загрузке.

Я обнаружил одну ошибку в IE "Объект не поддерживает это свойство или метод"

ниже код работает нормально с Firefox, но не работает с IE6& 7


 ** script  **

function getMAC(){

      try{
        var a=null;
        var obj=null;
        a=document.getElementById('jsap').readMACaddress();
  alert('mac address:'+a);
      }catch(e){
  alert('error::'+e);
      }

}
 ** /script **

  ** object type="application/x-java-applet"
  classid="clsid:CAFEEFAC-0016-0000-0000-ABCDEFFEDCBA" 
 width= "180" height= "180"  name="jsap" id="jsap" 

   **param name="archive" value="macaddr.jar" 
  **param name="code" value="com/mac/GeneralApplet" 
  **param name="mayscript" value="yes" 
  **param name="scriptable" value="true" 
 **/object 


 **input type="button" name="getmac" value="show" onclick="getMAC();" **


 **script **

 getMAC();

 **/script **

пожалуйста, помогите мне

Спасибо Йохи

Ответы [ 2 ]

0 голосов
/ 25 июля 2010

В соответствии с http://download.oracle.com/docs/cd/E17409_01/javase/6/docs/technotes/guides/plugin/developer_guide/java_js.html, синтаксис изменяется от тегов объекта, апплета и встраивания.Атрибут «MAYSCRIPT» должен быть в верхнем регистре (возможно, имеет значение регистр).

Я бы попробовал использовать «true» вместо «yes», как предложено на той же странице выше.

Мне кажется,Напомним, что вам нужно использовать MAYSCRIPT в качестве атрибута вместо параметра в IE.Поэтому я бы попробовал что-то вроде

<object type="application/x-java-applet"
  classid="clsid:CAFEEFAC-0016-0000-0000-ABCDEFFEDCBA" 
 width= "180" height= "180"  name="jsap" id="jsap" MAYSCRIPT="true" >
  <param name="archive" value="macaddr.jar" />
  <param name="code" value="com/mac/GeneralApplet"  />
  <param name="MAYSCRIPT" value="true" />
  <param name="scriptable" value="true" />
</object>

Кроме того, вы упоминаете (если я правильно понял), что проблема возникает во время загрузки.Попробуйте вызвать ваш метод из события onLoad элемента body, что должно гарантировать, что каждый ресурс был загружен до его запуска.

<body onLoad="yourCode();" />

Надеюсь, это поможет.

0 голосов
/ 25 июля 2010

Возможно, вам не хватает атрибута CLASSID тега объекта?Также попробуйте изменить функцию для использования document.getElementById

function getMAC(){
   // ...
   a=document.getElementById("jsap").readMACaddress();
   // ...
}  

Подробнее об атрибуте classId задокументировано здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...