JQuery - как сделать iframe из сценария, который я нашел в AJAX инъекции? - PullRequest
0 голосов
/ 19 февраля 2010

Мне интересно, как бы я изменил этот добавленный 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 ]

0 голосов
/ 19 февраля 2010

Если я правильно вас понимаю, вы хотите загрузить содержимое html-файла и поместить его в раздел страницы, используя ajax, а не iframe?

Это довольно просто, используя метод загрузки jQuery.

$("#GB_window").load("url to load from");

Это поместит содержимое html-файла, на который вы указываете, как содержимое элементов с идентификатором GB_window.

редактировать

Итак, вы пытаетесь показать файл изображения?

Вам необходимо использовать тег <img>. Попробуйте это:

$("img").attr("src", "url to image").appendTo("#GB_window");
0 голосов
/ 19 февраля 2010

Вместо строки append("<iframe>...."); используйте эту

$("<div id='GB_frame'></div>").appendTo("#GB_window").load(url);

Он создаст новый div с идентификатором GB_iframe, добавит его к GB_window и затем загрузит в него контент из предоставленного URL.

...