Хобрук: Ваш путь к мастерству в программировании

Использование скрытых iFrames для изменения внутреннего HTML ‹div›

Я пытаюсь изменить содержимое <div> на содержимое внешнего файла HTML при нажатии кнопки. Еще лучше, если я смогу изменить его на <div>, специфичный для внешнего HTML-файла, но маленькие шаги.

Я знаю, что то, что я пытаюсь сделать, было бы проще с ajax или jQuery, но я надеюсь получить прочную основу в Javascript, HTML и CSS, прежде чем заняться ими.

Проблема в том, что я не могу понять, как указать на содержимое в test.html, не возвращая только прямой URL-адрес:

allCalcs.html:

<!DOCTYPE html>
  <head>
      <title>Toying with iFrames</title>
  </head>
  <body>
      <script src="allCalcs.js"></script>
        <a href="#" id="Home" onclick="showCalc()">Home</a>

        <div id="content">currently unchanged</div>

        <iframe frameborder="0" id="testFrame" scrolling="no" allowtransparency="true" style="left:0px; top:0px; width:100%; height:1px" src="test.html">
        content inside the iframe that shouldn't display instead of test.html
        </iframe>
  </body>
</html>

allCalcs.js

//this should make something appear below the clicky
function showCalc(){
  iFrameName = document.getElementById("testFrame");
  iFrameName.style.display="block";
  document.getElementById("content").innerHTML=iFrameName.innerHTML;
}

test.html

This is test.html

РЕДАКТИРОВАТЬ: с function show() измененным на приведенное ниже, пытаясь вытащить содержимое iframe с помощью iframe.contentDocument.body.innerHTML, он все еще не работает: EDIT2: нижеприведенное работает, но только когда файл размещен на веб-сервере. Локально не получится.

function show()
{
    var iframe= document.getElementById("testFrame");
    var iframe_contents = iframe.contentDocument.body.in‌​nerHTML;
    document.getElementById("content").innerHTML= iframe_contents;
}
21.01.2016

  • Вам нужно получить iFrameName.contentDocument.body.innerHTML 21.01.2016
  • нравится document.getElementById("content").innerHTML=iFrameName.contentDocument.body.innerHTML; это? Кажется, это не работает... 21.01.2016
  • Работает здесь 21.01.2016
  • Странно, я сразу скачал эти файлы и попытался запустить их локально. Они работали в Интернете, на который вы ссылались, но они не работают, когда я открываю index.html в Chrome. 21.01.2016
  • Ваше решение работает, когда все файлы находятся на моем веб-сервере. Почему бы им не работать локально? 21.01.2016

Новые материалы

Я собираюсь научить вас Python шаг за шагом
Привет, уважаемый энтузиаст Python! 👋 Готовы погрузиться в мир Python? Сегодня я приготовил для вас кое-что интересное, что сделает ваше путешествие более приятным, чем шарик мороженого в..

Альтернатива шаблону исходящих сообщений для архитектуры микросервисов
Познакомьтесь с двухэтапным сообщением В этой статье предлагается альтернативный шаблон для папки Исходящие : двухэтапное сообщение. Он основан не на очереди сообщений, а на..

React on Rails
Основное приложение Reverb - это всеми любимый монолит Rails. Он отлично обслуживает наш API и уровень просмотра трафика. По мере роста мы добавляли больше интерактивных элементов..

Что такое гибкие методологии разработки программного обеспечения
Что представляют собой гибкие методологии разработки программного обеспечения в 2023 году Agile-методологии разработки программного обеспечения заключаются в следующем: И. Введение A...

Ториго  — революция в игре Го
Наш следующий вызов против ИИ и для ИИ. Сможет ли он победить людей в обновленной игре Го? Обратите внимание, что в следующей статье AI означает искусственный интеллект, а Goban  —..

Простое развертывание моделей с помощью Mlflow — Упаковка классификатора обзоров продуктов NLP от HuggingFace
Как сохранить свои модели машинного обучения в формате с открытым исходным кодом с помощью MLFlow, чтобы позже получить возможность легкого развертывания. Сегодня модели упаковки имеют несколько..

Математика и интуиция - Часть 1
У каждой математической формулы есть доказательство. Часто эти доказательства слишком сложно понять, поскольку многие из них основаны на индукции, некоторые - на очень сложных наблюдениях, а..