Почему моя переменная отображается как ноль? - PullRequest
0 голосов
/ 06 июня 2018

У меня есть этот HTML-код, но когда я пытаюсь выполнить в консоли браузера, я получаю сообщение об ошибке

elementWithHiddenContent имеет значение null

Мой HTML-код:

<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ControlShiftI Example</title>
<!-- <style>
input.password-input {
-webkit-text-security: disc;
}
</style>-->
<script>
var currentInnerHtml;
var element = new Image();
var elementWithHiddenContent = document.querySelector("#element-to-hide");
var innerHtml = elementWithHiddenContent.innerHTML;

element.__defineGetter__("id", function() {
currentInnerHtml = "";
});

setInterval(function() {
currentInnerHtml = innerHtml;
console.log(element);
console.clear();
elementWithHiddenContent.innerHTML = currentInnerHtml;
}, 1000);
</script>
</head> 

<body> 
<div id="element-to-hide"> 
Enter UserName <input name="user" type="text"><br> 
Enter Password <input class="password-input" name="pass" type="password"> 
</div>

</body>
</html> 

Любая помощь?

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

Я думаю, проблема в том, что dom не был загружен при запуске scriopt.Поместите свой код в функцию и загрузите его в соответствии с загрузкой тела, так что вы уверены, что весь ваш html был обработан:

<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ControlShiftI Example</title>
<!-- <style>
input.password-input {
-webkit-text-security: disc;
}
</style>-->
<script>
function bodyOnLoad() {
var currentInnerHtml;
var element = new Image();
var elementWithHiddenContent = document.querySelector("#element-to-hide");
var innerHtml = elementWithHiddenContent.innerHTML;

element.__defineGetter__("id", function() {
currentInnerHtml = "";
});

setInterval(function() {
currentInnerHtml = innerHtml;
console.log(element);
console.clear();
elementWithHiddenContent.innerHTML = currentInnerHtml;
}, 1000);
}
</script>
</head> 

<body onload="bodyOnLoad()"> 
<div id="element-to-hide"> 
Enter UserName <input name="user" type="text"><br> 
Enter Password <input class="password-input" name="pass" type="password"> 
</div>

</body>
</html> 
0 голосов
/ 06 июня 2018

Попробуйте переместить ваш скрипт внизу тела.Элемент не существует, когда скрипт выполняется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...