【问题标题】:Loading another html page from javascript从 javascript 加载另一个 html 页面
【发布时间】:2010-01-07 06:15:38
【问题描述】:

是否可以从 html 页面加载 Javascript 程序,然后让 Javascript 加载另一个 html 页面而不是加载程序的页面?

【问题讨论】:

  • “加载”是什么意思。您的意思是:1) HTML 页面加载 2) 引用带有 <script> 标签的 JS 文件 3) 该 JS 文件将浏览器的位置更改为另一个页面 OR 3) 该 JS 文件加载部分 HTML 页面并使用它来更新当前页面的一部分。
  • 第一个。 javascript 文件使用 标记中的 onload 参数加载。然后 javascript 文件显示一个完全不同的页面。
  • 我想我已经回答正确了。你所说的不可能,因为它违反了同源政策。

标签: javascript html


【解决方案1】:

是的。在javascript代码中:

window.location.href = "http://new.website.com/that/you/want_to_go_to.html";

【讨论】:

  • 但请注意,此脚本未包含/执行在新页面上!否则你会得到一个递归调用
  • 最好使用为此目的创建的函数(所有浏览器都支持),而不是使用赋值技巧。 location.assign 和 location.replace 函数。
  • @Blaine 有什么功能,能指点代码吗?
  • @jkr 正如我所说,location.assign 和 location.replace。他们显然将一个字符串作为参数。如果您不知道如何在给定函数名称和参数的情况下调用函数,我认为您不适合编码。 w3schools.com/jsref/met_loc_assign.aspw3schools.com/jsref/met_loc_replace.asp.
【解决方案2】:

您可以包含一个 .js 文件,其中包含设置脚本的脚本

window.location.href = url;

其中 url 将是您要加载的 url。

【讨论】:

    【解决方案3】:

    是否可以(仅在线工作并仅加载您的页面或文件):https://w3schools.com/xml/xml_http.asp 试试我的代码:

    function load_page(){
    qr=new XMLHttpRequest();
    qr.open('get','YOUR_file_or_page.htm');
    qr.send();
    qr.onload=function(){YOUR_div_id.innerHTML=qr.responseText}
    };load_page();
    

    qr.onreadystatechange 代替 qr.onload 也用。

    【讨论】:

    • 这是问题的答案,而不是重定向到另一个页面的 href 更改。相反,它将获取请求文件的原始源代码作为字符串。
    【解决方案4】:

    您可以使用以下代码:

    <!DOCTYPE html>
    <html>
        <body onLoad="triggerJS();">
    
        <script>
            function triggerJS(){
            location.replace("http://www.google.com");
            /*
            location.assign("New_WebSite_Url");
            //Use assign() instead of replace if you want to have the first page in the history (i.e if you want the user to be able to navigate back when New_WebSite_Url is loaded)
            */
            }
        </script>
    
        </body>
    </html>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-17
      • 2012-08-31
      • 1970-01-01
      • 1970-01-01
      • 2017-08-06
      • 1970-01-01
      • 1970-01-01
      • 2011-04-15
      相关资源
      最近更新 更多