我的几个功能需要UniversalXPConnect启用权限。
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
Run Code Online (Sandbox Code Playgroud)
所以,我的功能是这样的:
function oneOfMyFunctions() {
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
// ...
}
Run Code Online (Sandbox Code Playgroud)
其实,我也try到catch了异常,当特权被拒绝。看起来如下:
try {
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
// ...
} catch (e) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
我宁愿将它作为一个单独的函数并从我的函数中调用它,如下所示:
function oneOfMyFunctions() {
if (enablePrivilege()) {
// ...
} else {
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
鉴于该enablePrivilege功能如下:
function enablePrivilege() {
try {
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
} catch (e) {
return false;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
但是,出于安全原因,这是不可能的,因为权限仅在请求功能的范围内授予。
那么,唯一的选择是将该代码块包含在我的每个函数中?
更新:
由于我还将try考虑catch其他一些例外情况,因此我最终采用了以下设计:
function readFile(path, start, length) {
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
var file …Run Code Online (Sandbox Code Playgroud) 我有一个小型的Web JS,它可以复制并在iframe中插入一些表单数据.但它在Firefox 17中不起作用.我正在使用此代码:
"netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");"
Run Code Online (Sandbox Code Playgroud)
可能有什么不对?有没有解决方法?