首先,是学校的教务网页使用了innerText属性,所以我想自己写一个UserScript脚本来实现innerText属性。其实,只要执行如下脚本后,就有了innerText属性了:if(!!document.getBoxObjectFor||window.mozInnerScreenX!=null){HTMLElement.prototype.__defineGetter__("innerText",function(){returnthis.textContent;});HTMLElement.prototype.__defineSetter__("innerText",function(value){this.textContent=value;});}但是,我自己写了脚本之后,仍然无法设置innerText属性,提示TypeError:HTMLElement.prototype.__defineGetter__isnotafunction请问如何解决?另外,innerText属性在onload代码中就使用了。我觉得Scriptish的权限控制也是需要考虑的。附上我写的测试脚本://==UserScript==//@nameTest//@namespacewww.example.com//@include*//@version1//==/UserScript==if(!!document.getBoxObjectFor||window.mozInnerScreenX!=null){HTMLElement.prototype.__defineGetter__("innerText",function(){returnthis.textContent;});HTMLElement.prototype.__defineSetter__("innerText",function(value){this.textContent=value;});}
2 回答
有只小跳蛙
TA贡献1824条经验 获得超8个赞
不是权限的原因,而是它本身就没有那个__defineSetter__属性。Object.defineProperty(HTMLElement.prototype,'innerText',{get:function(){returnthis.textContent;},set:function(val){this.textContent=val;}})Firebug控制台测试可行。文档
添加回答
举报
0/150
提交
取消