Вызов iframe внутри функции js

Я пытаюсь создать внешнюю ссылку, которая появляется на том же сайте.

Здесь, если я нажму на ссылку, она должна отобразить содержимое этой ссылки (внешнего сайта) на нашем сайте. то есть, если мой сайт - это siteA, и я размещаю ссылку (на siteB), которая будет перенаправлять на siteB, закрывая siteA. Я просто хочу избежать ситуации, кроме того, я хочу, чтобы сайт B открывался внутри сайта A

Моя идея заключается в том, что, когда ссылка открыта, будет создан iframe, и в этом Iframe будет открыт внешний сайт.

 <a href="http://www.google.com" target="your_frame_name" onclick="executeOnClick()">Google</a>

 <script type="text/javascript">

   function executeOnClick(){
      <iframe name="your_frame_name" src="www.google.com" > </iframe>
             return true;
        }

       </script> 

Я написал этот код, но не смог получить то, что ожидаю. Я пытался использовать кнопку, но она не работает.

Есть ли другой способ исправить мою проблему..

6 ответов

Решение

Нет необходимости в JavaScript, используйте target атрибут:

<a href="http://www.hopamchuan.com" target="iframe1">Load the page</a>

<iframe id="iframe1"> </iframe>

JSFiddle

ВАЖНО: вы не можете отображать http://google.com/ в iframes из-за их X-Frame-Options, Смотрите: заголовок ответа X-Frame-Options

function executeOnClick(){
      $('body').append('<iframe name="your_frame_name" src="www.google.com" height=200 width=200 > </iframe>');
             return true;
        }

попробуй это

Обратите внимание, что google.com не будет работать с iframe

<a href="javascript:void(0)" onclick="executeOnClick('http://www.google.com')">Google</a>
<iframe id="targetFrame"></iframe>

<script>
    function executeOnClick(src) {
       document.getElementById("targetFrame").src =src;
    }
</script>

iframe разметка не должна быть внутри вашего JavaScript функция. Это ничего не делает, кроме как исключение. Разместите разметку под якорем и измените ее src по щелчку:

<a href="http://www.google.com" onclick="executeOnClick(this)">Google</a>
<iframe id="targetFrame"></iframe>

<script>
    function executeOnClick(target) {
        document.getElementById("targetFrame").src = target.src;
        return false;
    }
</script>

На самом деле вам даже не нужно JavaScript сделать это. Вы можете использовать target атрибут якоря и установите его в качестве имени фрейма, в котором вы хотите открыть страницу:

<a href="http://www.google.com" target="targetFrame">Google</a>
<iframe name="targetFrame" id="targetFrame"></iframe>

Изменить на это:

onclick="executeOnClick(this); return false;"

и сделайте это в вашей функции:

<script type="text/javascript">
   function executeOnClick(elem){
      var frame = '<iframe name="your_frame_name" src="'+ elem.getAttribute('href') +'" > </iframe>';
      document.body.appendChild(frame); // <----append it here.
   }
</script>

В вашей функции onclick вы должны return false; чтобы остановить поведение якоря по умолчанию, чтобы перейти на другую страницу.

 <iframe src="www.google.com" height="400" width="551" frameborder="0" scrolling="no" runat="server"></iframe>

Используйте атрибут runat тоже. Надеюсь, это работает. Если нет, то в чем ошибка?

Другие вопросы по тегам