0

在我的网站上,我有一个淡入页面正文的 jQuery 脚本,然后当用户单击相对链接时,正文淡出并将用户重定向到新页面,然后脚本再次启动。

我的同事建议我最好将主要内容放入 iframe,以便在更改页面时停止刷新整个正文,但问题是当用户单击相对链接时,iframe 会淡出,而不是针对 iframe 的新页面只是打开了页面。

我该如何解决?我认为错误发生在 line 之后$("body").fadeIn(2000);

    <script type="text/javascript" src="jquery-2.0.3.min.js"></script>
    <script type="text/javascript">
    $(document).ready(function () {
        $("body").css("display", "none");
        $("body").fadeIn(2000);
        $(".transition").click(function (event) {
            event.preventDefault();
            linkLocation = this.href;
            $("iframe").fadeOut(1000, redirectPage);
        });

        function redirectPage() {
            window.location = linkLocation;
        }
    });
    </script>

    <a href="competition.html" class="transition" target="iframe">Home</a>

    <iframe src="main.html" name="iframe" seamless="seamless" width="800" height="800">
    </iframe>
4

2 回答 2

0

用于document.getElementById("iframe").src更改 iframe 的 src 属性,并将其设置为单击的链接 href。

你也应该通过使用来获得href$(this).attr("href");

<script type="text/javascript" src="jquery-2.0.3.min.js"></script>
    <script type="text/javascript">
    $(document).ready(function () {
        $("body").css("display", "none");
        $("body").fadeIn(2000);
        $(".transition").click(function (event) {
            event.preventDefault();
            linkLocation = $(this).attr("href");
            $("iframe").fadeOut(1000, redirectPage(linkLocation));
        });

        function redirectPage(url) {
            document.getElementById("iframe").src = url;
        }
    });
    </script>

    <a href="competition.html" class="transition" target="iframe">Home</a>

    <iframe src="main.html" id="iframe" name="iframe" seamless="seamless" width="800" height="800">
    </iframe>
于 2013-10-24T09:57:45.260 回答
0

您不能更改 iframe 窗口的位置,因为很多时候它是不允许的。由于安全原因,一些网站将 X-Frame-Options 设置为 SAMEORIGIN 您可以对此进行测试,只需更改

//your syntax is wrong here see below for correct

window.location = linkLocation

//correct way to change the location of iframe window

window.frames['yourframeName'].location=linkLocation

和的<a>链接hrefhttp://www.google.com

现在在控制台中看到错误。

因此您的语法错误您没有更改 iframe 的位置您正在更改包含目标 iframe 的主页(窗口)的位置。所以完成工作的更正是

function redirectPage() {
        $('iframe').attr('src',linkLocation);
        $('iframe').fadeIn()
    }
于 2013-10-24T11:00:44.397 回答