JQuery Force устанавливает атрибут src для iframe

У меня есть главная страница (на самом деле JSP) с iframe внутри нее:

<iframe name="abc_frame" id="abc_frame" src="about:blank" frameborder="0" scrolling="no"></iframe>

Теперь на главной странице есть несколько ссылок (динамически передается через JSP), которые могут попытаться установить src на какой-то URL-адрес...

Теперь я задаю вопрос, используя jQuery (может быть live()), могу ли я переопределить это так, чтобы атрибут "src" для abc_frame всегда имел определенное значение (например, "somefixedURL" )

Я не могу зафиксировать щелчок ссылки, так как он полностью динамически создается через некоторый Java-код, и поэтому я пытаюсь переопределить iframe src?

Ответ 1

Используйте attr

$('#abc_frame').attr('src', url)

Таким образом вы можете получить и установить каждый атрибут тега HTML. Обратите внимание, что существует также .prop(). См. .prop() vs .attr() об отличиях. Краткая версия: .attr() используется для атрибутов, поскольку они написаны в исходном коде HTML, а .prop() - для всего, что JavaScript привязан к элементу DOM.

Ответ 2

если вы используете jQuery 1.6 и выше, вы хотите использовать . prop(), а не .attr():

$('#abc_frame').prop('src', url)

См. этот вопрос для объяснения различий.

Ответ 3

При создании ссылок установите цель в свойство имени iframes, и вам, вероятно, вообще не придется иметь дело с jquery.

<a href="inventory.aspx" target="contentframe"  title="Title Inventory">
<iframe id="iframe1" name="contentframe"  ></iframe>

Ответ 4

$(document).ready(function() {
    $('#abc_frame').attr('src',url);
})

Ответ 5

<script type="text/javascript">
  document.write(
    "<iframe id='myframe' src='http://www.example.com/" + 
    window.location.search + "' height='100' width='100%' >"
  ) 
</script>  

Этот код берет url-параметры (? a = 1 & b = 2) со страницы, содержащей iframe, и привязывает их к базовому url iframe. Это работает для моих целей.

Ответ 6

Значение атрибута src не работает для меня. В iframe не отображался URL-адрес.

Что для меня работало:

window.open(url, "nameof_iframe");

Надеюсь, что это поможет кому-то.

Ответ 7

Вы не можете установить FIX iframe src или запретить javascript/form submit изменять свое местоположение. Однако вы можете поставить script на загрузку страницы и изменить действие каждой динамической ссылки.

Ответ 8

$(".excel").click(function () {
    var t = $(this).closest(".tblGrid").attr("id");
    window.frames["Iframe" + t].document.location.href = pagename + "?tbl=" + t;
});

это то, что я использую, для этого не требуется jquery. в этом конкретном сценарии для каждой таблицы, у которой есть значок экспорта excel, принудительно привязывает iframe к этой таблице, чтобы загрузить ту же страницу с переменной в строке запроса, которую ищет страница, и если найденный ответ выписывает поток с excel mimetype и включает данные для этой таблицы.