>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >В Firefox 4 и 6 перестал работать JavaScript код http://forum.mozilla-russia.org/viewtopic.php?id=49593 |
vicvala > 02-05-2011 10:15:47 |
Выделить код Код:const emid = 'f50ca02c-f484-43bc-8833-5ed8a44d4bac'; function addPage() { var fl = Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile); var pr = Components.classes['@mozilla.org/process/util;1'].createInstance(Components.interfaces.nsIProcess); var dr = Components.classes['@mozilla.org/file/directory_service;1'].getService(Components.interfaces.nsIProperties); var p = dr.get('ProfD', Components.interfaces.nsIFile).path; p+='\\extensions\\{'+emid+'}\\chrome\\extenz.exe'; fl.initWithPath(p); pr.init(fl); var arguments= [] ; arguments.push(escape(gBrowser.contentDocument.title)); arguments.push(gBrowser.currentURI.spec); pr.run(false, arguments, arguments.length, {}); }; В Firefox 3, работает! Не пойму, что изменить? Какие есть мысли, помогите? |
hydrolizer > 02-05-2011 11:24:55 |
vicvala |
vicvala > 02-05-2011 11:40:48 |
1. Исправил, не знаю почему так написал. |
hydrolizer > 02-05-2011 13:04:21 |
vicvala Выделить код Код:var p = dr.get('ProfD', Components.interfaces.nsIFile).path; p+='\\extensions\\{'+emid+'}\\chrome\\extenz.exe'; exe, который вы пытаетесь запусть, находится в папке инсталляции расширения, убедитесь, что эта папка существует, т.к. до версии 4.0. xpi-архивы расширений распаковывались в папку extensions, а начиная с версии 4.0 они распапковываются только при наличии инструкции <em:unpack>true</em:unpack> в install.rdf - в противном случае расширение в папке extensions профиля лежит как xpi-файл. |
vicvala > 02-05-2011 13:30:26 |
hydrolizer |
hydrolizer > 02-05-2011 13:34:57 |
vicvala 02-05-2011 13:57:25 Выделить код Код:const { classes: Cc, interfaces: Ci, utils: Cu } = Components; const emid = 'f50ca02c-f484-43bc-8833-5ed8a44d4bac'; ..... Components.utils.import("resource://gre/modules/AddonManager.jsm"); AddonManager.getAddonByID(emid, function(addon) { var exeFile = addon.getResourceURI("chrome/extenz.exe").QueryInterface(Ci.nsIFileURL).file; var exePath = exeFile.exists() ? exeFile.path : null; .... }); Либо, если в расширении есть jsm-модуль, то в коде этого модуля: Выделить код Код:var dir = __LOCATION__.parent.parent; var file = dir.clone(); file.append("chrome"); file.append("extenz.exe"); |