В этой статье описывается метод JS, чтобы предотвратить встраивание веб -страниц в Framework Iframe. Поделитесь этим для вашей ссылки, следующим образом:
Например:
<script type = "text/javascript"> if (window! = top) // определить, является ли текущий объект окна верхним объектом top.location.href = window.location.href; // Если нет, автоматически направляет URL -адрес верхнего объекта на URL, который встроен на веб -страницу </script>
Этот код действителен. Тем не менее, есть проблема: после использования никто не может внедрить вашу веб -страницу в структуру, включая вас.
Итак, сегодня я рассматриваю вопрос о том, есть ли способ сделать мои веб -страницы только в мои собственные рамки, а не другие люди?
На первый взгляд, этот вопрос очень прост. Просто вынесите суждение: являются ли доменные имена текущей структуры и структуры верхнего уровня одинаково, и если ответ нет, выполняется перенаправление URL.
if (top.location.hostname! = window.location.hostname) {top.location.href = window.location.href;}Однако, неожиданно, это письмо неверно и вообще не может быть запущено. Вы видите, где ошибка?
Предположим, что top.location.hostname - www.111.com, а window.location.hostname - www.222.com. То есть 111.com встраивает 222.com в свою веб -страницу. В настоящее время, что произойдет, если вы сравните top.location.hostname! = Window.location.hostname?
Браузер подаст ошибку кода!
Поскольку они являются междоменными, политика безопасности браузера не позволяет веб-страницам 222.com работать на веб-страницах 111.com, и наоборот. Т.е. называет эту ошибку «нет разрешений». Кроме того, браузер даже не позволяет вам просматривать top.location.hostname. В междоменных случаях вы напрямую сообщите об ошибке, как только увидите этот объект.
Итак, как следует изменить код?
Фактически, это побуждает нас просто проверить, сообщается ли Top.location.hostname как ошибка. Если сообщается об ошибке, это указывает на то, что есть перекрестная домен, а верхний объект будет перенаправлен; Если сообщается об ошибке, это указывает на то, что нет перекрестного домена (или структура не используется), то никакие действия не предпринимаются.
try {top.location.hostname;} catch (e) {top.location.href = window.location.href;}Это написано правильно и может быть правильно запускаться в IE и Firefox. Тем не менее, chrome будет иметь ошибку. По какой-то причине, в междоменных ситуациях, Chrome не сообщает об ошибке top.location.hostname!
Там нет способа, я могу добавить только еще один дополнительный код для Chrome.
try {top.location.hostname; if (top.location.hostname! = window.location.hostname) {top.location.href = window.location.href; }} catch (e) {top.location.href = window.location.href;}ОК, обновленный код версии завершен. За исключением локальных доменных имен, никакие другие доменные имена не могут встроить вашу веб -страницу в структуру.
For more information about JavaScript related content, please check out the topics of this site: "Summary of JavaScript Operation Iframe Skills", "Summary of JavaScript Array Operation Skills", "Summary of JavaScript Mathematical Operation Usage", "Summary of JavaScript Data Structure and Algorithm Skills", "Summary of JavaScript Switching Special Effects and Skills", "Summary of JavaScript Search Algorithm Skills", «Сводка спецэффектов и навыков анимации JavaScript», «Сводка ошибок JavaScript и навыки отладки» и «Сводка алгоритма и навыков обхода JavaScript»
Я надеюсь, что эта статья будет полезна для каждого программирования JavaScript.