我目前正在使用允许UI脚本注入的第三方基于Web的应用程序。
在我尝试将我的UI脚本注入的页面中,是一个带有相关复选框的元素列表。以下是原始开发人员通过网页生成的复选框,我无法更改这些:
<input type="checkbox" value="1" class="selectionCheckbox" checked="checked" onclick="foo(this)"> // For True (Checked)
<input type="checkbox" value="1" class="selectionCheckbox" onclick="foo(this)"> // For False (Unchecked)
我正在尝试在文档准备好后将其值加载到我自己的UI脚本的复选框中。我的脚本的本质基本上是注入组合的X / Y网格而不是列表。
我试过了:
function loadCheckOne(vobj, objValue) {
var containerObj = document.getElementById(objValue);
var row = containerObj.getElementsByClassName("checkbox");
// row[0] === the above mentioned input element
if (row[0].checked){
vobj.setAttribute("checked", "true");
console.log("Marked.");
}
console.log(row[0].checked); // Prints: "undefined"
}
function loadCheckTwo(vobj, objValue) {
var containerObj = document.getElementById(objValue);
var row = containerObj.getElementsByClassName("checkbox");
// row[0] === the above mentioned input element
if (row[0].hasAttribute("checked")){
vobj.setAttribute("checked", "true");
console.log("Marked.");
}
console.log(row[0].hasAttribute("checked")); // Prints: "false"
}
function loadCheckThree(vobj, objValue) {
var containerObj = document.getElementById(objValue);
var row = containerObj.getElementsByClassName("checkbox");
// row[0] === the above mentioned input element
if (row[0].getAttribute("checked")){
vobj.setAttribute("checked", "true");
console.log("Marked.");
}
console.log(row[0].getAttribute("checked")); // Prints: "null"
}
问题是所有方法都以某种方式返回false或null,即使是在脚本运行时检查的复选框也是如此。不知道从哪里开始。