JQuery - как сделать iframe из сценария, который я нашел в AJAX-инъекции?
Мне интересно, как бы я изменил этот добавленный iframe:
$("#GB_window").append("<iframe id='GB_frame' src='" + url + "'></iframe>");
в див. Есть ли способ изменить это так, чтобы я не добавлял iframe, а вместо этого использовал ajax? Я должен быть в состоянии использовать
src='" + url + "'
Часть этого. Я все еще новичок.
Если вы хотите увидеть сценарий, который я редактирую, то это сценарий лайтбокса GreyBox Redux, созданный Джоном Резигом некоторое время назад. До сих пор я убрал из этого приличное количество jquery, потому что все, что мне нужно для показа изображений, а не веб-сайтов. это только пара кб тоже.
Благодарю.
вот jquery, который я оставил после того, что я раздевал:
var GB_DONE = false;
function GB_show(caption, url, height, width){
GB_HEIGHT = height || 400;
GB_WIDTH = width || 400;
if (!GB_DONE) {
$(document.body).append("<div id='GB_overlay'></div><div id='GB_window'>");
$("#GB_overlay").click(GB_hide);
$(window).resize(GB_position);
GB_DONE = true;
}
$("#GB_frame").remove();
$("#GB_window").append("<iframe id='GB_frame' src='" + url + "'></iframe>");
$("#GB_overlay").fadeIn(350, function(){
$("#GB_window").fadeIn(350);
});
GB_position();
}
function GB_hide(){
$("#GB_window,#GB_overlay").fadeOut(350, function(){
$("#GB_window,#GB_overlay").hide()
});
}
function GB_position(){
var de = document.documentElement;
var w = self.innerWidth || (de && de.clientWidth) || document.body.clientWidth;
$("#GB_window").css({
width: GB_WIDTH + "px",
height: GB_HEIGHT + "px",
left: ((w - GB_WIDTH) / 2) + "px"
});
$("#GB_frame").css("height", GB_HEIGHT - 32 + "px");
и это из файла html:
<script type="text/javascript">
var GB_ANIMATION = true;
$(document).ready(function(){
$("a.greybox").click(function(){
GB_show(this.title || $(this).text() || this.href,this.href,470,600);
return false;
});
});
</script>
извините, если это много: /
2 ответа
Вместо append("<iframe>....");
линия использовать этот
$("<div id='GB_frame'></div>").appendTo("#GB_window").load(url);
Это создаст новый div
с идентификатором GB_iframe
, добавьте это к GB_window
а затем загрузить контент с предоставленного URL прямо в него.
Если я вас правильно понял, вы хотите загрузить содержимое html-файла и поместить его в раздел страницы, используя ajax, а не iframe?
Это довольно просто, используя метод загрузки jQuery.
$("#GB_window").load("url to load from");
Это поместит содержимое html-файла, на который вы указываете, как содержимое элементов с идентификатором 'GB_window'.
редактировать
Итак, вы пытаетесь показать файл изображения?
Вам нужно использовать <img>
тег. Попробуй это:
$("img").attr("src", "url to image").appendTo("#GB_window");