На моей веб-странице, используя «window.location.href» возвращает «about: srcdoc» вместо имени URL

#javascript #html #url

#javascript #HTML #url

Вопрос:

Чтобы увидеть проблему, введите этот URL-адрес «https://gainesrad.com/readqrcodefromkiosk /»

Он должен отображать URL веб-страницы, но вместо этого я получаю «about: srcdoc».

Вот HTML-код на gainesrad.com/readqrcodefromkiosk

 <!DOCTYPE html>
<html>
<body>
<b>This should tell me the URL of the page but instead is says "about:srcdoc"</b>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = "The full URL is:  "   window.location.href;
</script>
</body>
</html>
  

Комментарии:

1. попробуйте top.location.href , когда в том же домене

Ответ №1:

srcdoc Атрибут используется в контексте Iframe для указания содержимого iframe. При проверке полного исходного кода вашей страницы я заметил, что вы используете iframe, и именно поэтому вы получаете about:srcdoc с window.location.href

Чтобы получить URL-адрес, переместите встроенный <script> в контекст документа за пределами Iframe.

Смотрите это:https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/srcdoc

Поскольку ваш iframe содержится в контексте документа, вы можете сделать это, чтобы получить базовый URI содержащего документа:https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/contentDocument

    let iframe = document.querySelector('iframe')
   console.log('The baseURI is: '   iframe.contentDocument.baseURI)
  

Комментарии:

1. Спасибо, Мика, за ответ. Похоже, у вас есть ответ, но у меня возникли проблемы, потому что я не понимаю, как двигаться встроенный <script> outside the Iframe (I didn’t even know I was using an Iframe). Я проверил вашу рекомендованную ссылку, но я все еще не уверен, как написать код. Я попытался передвинуть <script> below the <html> но это не работает (например, я сделал это):

2. <!DOCTYPE html> <html> <body> <b>Это должно сказать мне URL-адрес страницы, а вместо этого говорит «о:srcdoc» </b> <p id=»demo»></p> </body> </html> <script> document.getElementById(«demo»).innerHTML = «The full URL is: » window. location.href; </script>

3. Можете ли вы помочь мне передвинуть встроенный <script> outside the Iframe?

4. @BobGaines, при проверке заголовка сгенерированной HTML-страницы вы используете генератор сайта, который вводит ваш контент в iframe, поэтому вы не знали, что используете iframe. Я обновил свой ответ, включив обходное решение. Посмотрите, работает ли это для вас

Ответ №2:

Вы все были правы. Я вызвал godaddy, и поскольку я использую конструктор веб-сайтов, я нахожусь в iFrame. Чтобы сделать то, что мне нужно на godaddy, мне пришлось приобрести веб-хостинг и прекратить использование конструктора веб-сайтов. Спасибо всем за помощь.