HtmlService Caja - 设置文本框值

时间:2013-07-04 10:47:34

标签: javascript google-apps-script google-caja

当使用HtmlService(使用Caja清理)时,我可以获取/设置文本框的值(其他控件)吗?

console.log('getting current value : ' + document.getElementById('z123').value);

其中'z123'是唯一文本框的id,上面的代码给出了错误消息:

Cannot read property 'value' of null 

当然UiApp允许这样做。所以我不确定发生了什么。

2 个答案:

答案 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工作。)