当使用HtmlService(使用Caja清理)时,我可以获取/设置文本框的值(其他控件)吗?
console.log('getting current value : ' + document.getElementById('z123').value);
其中'z123'是唯一文本框的id,上面的代码给出了错误消息:
Cannot read property 'value' of null
当然UiApp允许这样做。所以我不确定发生了什么。
答案 0 :(得分:2)
使用class而不是id。在chrome devtools(Inspect元素)中,您可以看到Caja在z123
上更改z123-caja-guest-0___
(yourId)(与类不同)
或使用jquery,您可以使用id ..
$('#z123').val();
答案 1 :(得分:1)
在Caja沙箱中,getElementById
应该像往常一样工作,表单字段应该.value
。如果您遇到此问题,请显示您的HTML以及您的JavaScript(最好是完整的,简短的示例),以便我们找出问题所在。
另一方面,如果您在浏览器控制台上工作,那么该代码确实会失败,因为ID会被后缀重写(如前所述);从这种情况来看,document.getElementById('z123-caja-guest-0___')
应该有效。 (有些方法可以在不知道后缀格式的情况下执行此操作,但它们需要已经具有对特定Caja沙箱的引用。)
(我在Caja工作。)