Вызов 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 тоже. Надеюсь, это работает. Если нет, то в чем ошибка?