jquery - 如何将我发现的脚本制作为 ajax 注入的 iframe?

发布于 2024-08-22 22:10:22 字数 1881 浏览 12 评论 0原文

我想知道如何将这个附加的 iframe: 更改

$("#GB_window").append("<iframe id='GB_frame' src='" + url + "'></iframe>");

为 div。有没有办法改变这个,以便我不附加 iframe,而是使用 ajax?我需要能够使用

src='" + url + "'

它的一部分。我还是个新手。

如果您想查看我正在编辑的脚本,它是 GreyBox Redux 灯箱脚本不久前的约翰·雷西格。到目前为止,我已经去掉了相当多的 jquery,因为我只需要它来显示图像,而不是网站。它也只有几kb。

谢谢。

这是我删除后留下的 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>

抱歉,如果太多了:/

I'm wondering how i would change this appended iframe:

$("#GB_window").append("<iframe id='GB_frame' src='" + url + "'></iframe>");

into a div. Is there a way to change this so that i'm not appending an iframe, but instead using ajax? I need to be able to use the

src='" + url + "'

part of it. i'm still a novice.

If you'd like to see the script i'm editing, it's the GreyBox Redux lightbox script by John Resig from awhile ago. I've stripped a decent amount of jquery out of it so far, because all i need it for showing images, not websites. it's only a couple of kb too.

thanks.

here's the jquery i have left after what i've stripped:

    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");

and this is from the of the html file:

    <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>

sorry if that's a lot :/

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

微凉 2024-08-29 22:10:22

使用此行代替 append("

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

它将创建新的 div ,其 id 为 GB_iframe,将其附加到 GB_window 中,然后将提供的 url 中的内容直接加载到其中。

Instead of append("<iframe>...."); line use this one

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

It will create new div with id GB_iframe, append it to GB_window and then load content from provided url right into it.

墟烟 2024-08-29 22:10:22

如果我理解正确的话,您想加载 html 文件的内容并使用 ajax 而不是 iframe 将其放置在页面的一部分上?

使用 jQuery 加载方法非常简单。

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

这会将您指向的 html 文件的内容放置为 id 为“GB_window”的元素的内容。

编辑

那么,您正在尝试显示图像文件吗?

您需要使用 标签。试试这个:

$("img").attr("src", "url to image").appendTo("#GB_window");

If I understand you correctly, you want to load the contents of an html file and place it on a section of the page using ajax, not an iframe?

That's fairly simple using the jQuery load method.

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

This will place the contents of the html file you point to as the contents of the elements with the id 'GB_window'.

edit

So, you're trying to show an image file?

You need to use an <img> tag. Try this:

$("img").attr("src", "url to image").appendTo("#GB_window");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文