3.dynaload.js 封装



  硕正软件 1.0.107.0 版的 dynaload.js 作了改进, 通过添加 prototype 原型函数、自动生成侦听事件脚本, 使得 ppapi 的书写方法和 IE、npapi 完全一致了。

  如下是 dynaload.js 和 ppapi 有关的二处关键段落.
1.为 object 添加 func( ) 函数:
#56#//让 ppapi 语法兼容 npapi:为 <object> 添加 func( ) 函数
if($B.ppapi) {
  Object.prototype.func = function(funcname, para) {
    return this.postMessageAndAwaitResponse([funcname, para]);
  }
}

2.为 object 添加事件侦听、复用页面上的 OnReady( ) 和 OnEvent( ):
#118#if($B.ppapi) { //为 ppapi 添加事件侦听函数, 在其中直接调用 OnReady、OnEvent, 达到语法和 npapi 兼容的目的
 str += '\n<script>\n' + id + '.addEventListener("message", handleMessage' +id+ ', false);\n'
 str += 'function handleMessage' + id + '(message) {\n if(message.data.name=="OnReady") OnReady("' +id+ '");\n else if(message.data.name=="OnEvent") OnEvent("' +id+ '", message.data.event, message.data.p1, message.data.p2, message.data.p3, message.data.p4); \n }\n';
 str += '</script>';
}