| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- // This script injects the appropriate syntax into the document to
- // embed Panda3D, either for the ActiveX or Mozilla-based plugin.
- // It is also possible to write browser-independent code by nesting
- // <object> tags, but this causes problems when you need to reference
- // the particular object that is actually running (which object is
- // it?) for scripting purposes.
- // This script writes only a single <object> tag, and it can be
- // assigned the id you specify, avoiding this ambiguity.
- var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
- var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
- var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
- function P3D_Generateobj(objAttrs, params, embedAttrs, imageAttrs)
- {
- var str = '';
- if (isIE && isWin && !isOpera)
- {
- str += '<object ';
- for (var i in objAttrs)
- {
- str += i + '="' + objAttrs[i] + '" ';
- }
- str += '>';
- for (var i in params)
- {
- str += '<param name="' + i + '" value="' + params[i] + '" /> ';
- }
- }
- else
- {
- str += '<object ';
- for (var i in embedAttrs)
- {
- str += i + '="' + embedAttrs[i] + '" ';
- }
- str += '> ';
- }
- if (imageAttrs["src"]) {
- if (imageAttrs["href"]) {
- str += '<a href="' + imageAttrs["href"] + '">';
- }
- str += '<img ';
- for (var i in imageAttrs) {
- if (i != "href") {
- str += i + '="' + imageAttrs[i] + '" ';
- }
- }
- str += '>';
- if (imageAttrs["href"]) {
- str += '</a>';
- }
- }
- str += '</object>';
- document.write(str);
- }
- function P3D_RunContent() {
- var ret =
- P3D_GetArgs
- (arguments, "clsid:924b4927-d3ba-41ea-9f7e-8a89194ab3ac",
- "application/x-panda3d");
- P3D_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs, ret.imageAttrs);
- }
- function P3D_GetArgs(args, classid, mimeType){
- var ret = new Object();
- ret.embedAttrs = new Object();
- ret.params = new Object();
- ret.objAttrs = new Object();
- ret.imageAttrs = new Object();
- for (var i = 0; i < args.length; i = i + 2){
- var currArg = args[i].toLowerCase();
- switch (currArg){
- case "src":
- case "data":
- ret.embedAttrs['data'] = args[i+1];
- ret.params['data'] = args[i+1];
- break;
- case "codebase":
- ret.objAttrs['codebase'] = args[i+1];
- break;
- case "noplugin_img":
- ret.imageAttrs["src"] = args[i+1];
- ret.imageAttrs["border"] = '0';
- break;
- case "noplugin_href":
- ret.imageAttrs["href"] = args[i+1];
- break;
- case "splash_img":
- ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
- if (!ret.imageAttrs["src"]) {
- ret.imageAttrs["src"] = args[i+1];
- }
- break;
- case "width":
- case "height":
- ret.imageAttrs[args[i]] = ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
- break;
- case "id":
- case "align":
- case "vspace":
- case "hspace":
- case "class":
- case "title":
- case "accesskey":
- case "name":
- case "tabindex":
- ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
- break;
- default:
- ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
- }
- }
- ret.objAttrs["classid"] = classid;
- if (mimeType) ret.embedAttrs["type"] = mimeType;
- return ret;
- }
|