我试图在应用程序中找出一个非常随机的错误,供应商似乎也在纠正问题所以这更像是一个问题,以帮助我理解可能导致此问题的不同方案在js世界。
这是基于Javascript的错误,拒绝权限'
报告为问题的行只是将变量设置为false。
<script LANGUAGE="JavaScript" for='tdNote' event='onclick'>
if (this.firstChild.src.indexOf('icon_blank.gif') != -1) return;
if(mbInNoteClick || mbInGridClick) return;
mbInNoteClick = true;
onGridClick(this.parentElement.rowIndex);
onNoteIconClick(this.parentElement.rowIndex);
mbInGridClick = false; //THIS LINE IS REPORTED AS PERMISSION DENIED
mbInNoteClick = false;
window.event.cancelBubble = true;
</script>
包含此代码的页面没有此变量,因此我假设这是在某处全局设置的。 (大型申请)
如果在if语句中可以访问它,那么在尝试设置变量时会出现哪些情况会导致权限被拒绝?
答案 0 :(得分:1)
该属性是常量或标记为不可变,主要是指不可写属性,因为它的定义如下:
Object.defineProperty( myObject, "a", {
value: 4,
writable: false, // not writable!
configurable: false, // not configurable!
} );
来自js大师凯尔辛普森在他的书中说:&#34;你不知道JS-这个&amp;对象原型&#34;
有一个细致入微的例外需要注意:即使属性是 已经可配置:false,writeable总是可以从true更改 假如没有错误,但如果已经错误则不会返回true。
if条件代码正在读取它,这就是您具有读访问权限的原因。
还有其他方法可以对以下属性声明权限:Object。 preventExtensions ,Object。 seal ,Object。 freeze ,