Перейти по ссылке через iFrame

#php #javascript #html #iframe #onclick

#php #javascript #HTML #iframe #onclick

Вопрос:

У меня проблема, и я попытался щелкнуть ссылку, но не получается открыть ссылку, используя target: имя iFrame. я не хочу использовать href, потому что я собираюсь показать / скрыть div.

Javascript:

 <script type="text/javascript">
<!--//
function godirect(url, targetname)
{
document.getElementById(targetname).src = url;
//frame[targetname].location.href = url;
}
//-->
</script>
  

в HTML и PHP:

 $a=0;

echo '<a href="#" onclick="godirect("http://www.google.com", iframe_url'.$a.');">Click Me!</a>';

echo '<iframe class="iframe_url" id="iframe_url'.$a.'"></iframe>';
  

Ответ №1:

Как насчет

 <script type="text/javascript">
function godirect(url, targetname) {
  window.frames[targetname].location = url;
  //OR 
  //window.open(url,targetname);
  return false;
}
</script>

<?PHP 
$a=0;
?>
<a href="#" onclick="return godirect('http://www.google.com', 'iframe_url<? echo $a; ?>');">Click Me!</a>
<iframe class="iframe_url" name="iframe_url<? echo $a; ?>" id="iframe_url<? echo $a; ?>"></iframe>
  

Ответ №2:

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

Вы также используете те же символы кавычек для разграничения значения вашего атрибута HTML, которые вы используете для разграничения ваших строк JS.

Использовать подход, который вы используете, внося минимальное количество исправлений, чтобы заставить его работать:

 echo '<a href="#" onclick="godirect(amp;quot;http://www.google.comamp;quot;, amp;quot;iframe_url'.$a.'amp;quot;);">Click Me!</a>';
  

Использование JS для этого, во-первых, очень глупая идея, и в вашей реализации не предусмотрено какого-либо запасного варианта на случай, если JS недоступен (что странно, поскольку вы предпринимаете шаги, чтобы остановить браузеры, которые не распознают элемент script, от рендеринга JS в виде текста содержимого).

Вы можете сделать это с помощью простого HTML:

 <a href="http://www.google.com" 
   target="iframe_url<?php echo htmlspecialchars($a); ?>">
   Click Me!
</a>
  

я не хочу использовать href, потому что я собираюсь показать / скрыть div.

Вы можете сделать это так же, как иметь обычную, функционирующую ссылку. Основывайтесь на вещах, которые работают.

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

1. спасибо, Дэвид по поводу «»» я не знал, что это нужно. я дум ал, что смогу получить вот так ‘ » ‘

Ответ №3:

Попробуйте это:

 echo '<a href="#" onclick="godirect("http://www.google.com", iframe_url'.$a.');">Click Me!</a>';
echo '<iframe class="iframe_url" id="iframe_url'.$a.'"></iframe>';
  

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

1. Там много совершенно ненужных экранирующих символов двойных кавычек (поскольку строка разделена ' символами, это единственный вид кавычек, который необходимо экранировать для PHP). Это очень затрудняет чтение … и в любом случае это не решает проблему.