Я написал букмарклет (с небольшой помощью от экспертов в Stackexchange), и я столкнулся с небольшой проблемой, когда я не могу закрыть эту вещь.Создайте и закройте iframe в bookmarklet
Вот код (чувствительные люди, вероятно, следует двигаться дальше):
javascript: (function() {
var htmlheader = "<html><head></head>"
var html = htmlheader + "<body><a href='javascript:document.getElementById(\"TroubleiFrame\").style.visibility = \"hidden\"'>Close</a>" +
"</body></html>";
var iframe = document.createElement('iframe');
iframe.src = 'data:text/html;charset=utf-8,' + encodeURI(html);
iframe.style.background = "#fff";
iframe.style.width = "50%";
iframe.style.height = "500px";
iframe.style.left = "25%";
iframe.style.top = "25vh";
iframe.style.position = "fixed";
iframe.style.zIndex = "9999";
iframe.id = "TroubleiFrame";
iframe.style.boxShadow = "0 0 0 100vw rgba(0,0,0,0.75)";
document.body.appendChild(iframe);
})();
При нажатии на тесной связи я получаю эту ошибку:
Uncaught TypeError: Cannot read property 'style' of null
Если я вставляю команду в Chromes утешать его работы:
document.getElementById("TroubleiFrame").style.visibility = "hidden"
У вас есть идеи о том, что я делаю неправильно? Если возможно, мне тоже понравилось бы краткое объяснение, чтобы я чему-то научился.
/Patrik
Ваша близкая ссылка выполняется, прежде чем ur iframe присоединяется к телу. Выполните ваши первые 2 заявления после добавления iframe в тело. – AkshayJ
Я не уверен, как это могло быть? Запуск букмарклета вызывает iFrame со ссылкой. Нажав на ссылку, вы получите ошибку, не генерируя фрейм? – PatrikJ