3

我慢してください、私はJavascriptの完全な初心者です:P. だから、私がやりたいのは、関数を使ってウェブページをロードすることです。そして、その機能が完了したら、ページ上の特定の要素の HTML コードを取得できるようにしたいと考えています。これまでの私のコードは次のとおりです。

function change(){
    window.location = "www.aWebPage.com"
    window.onload = function() {
     return document.ID_HERE.outerHTML;
    }   
}

何らかの理由で HTML コードの戻りは機能しませんが、リダイレクトは機能します。関数に適切に値を返していますか? ウィンドウがリダイレクトされた後にのみ実行される複数の関数を使用できる別の方法はありますか?

4

4 に答える 4

3

ドキュメントが存在しないため、window.locationの後のコードは実行されません。

于 2013-03-23T16:59:44.807 に答える
1

これは、javascriptがwindow.locationを読み取ると、ページが更新され、後続のすべてのコードが実行されないためです。これを回避するために、ハッシュタグとクエリ文字列を使用します。たとえば、場所をwww.awebpage.com#idに変更できます。次に、javascriptを使用してクエリ文字列の「#id」を検出し、コードを実行します。以下にサンプルを作成しました。

function change(id){
    window.location = "www.aWebPage.com#id=" + id;
}

window.onload = function() {
    var hash = window.location.hash;
    if (hash.length > 0)
    {
    var id = hash.replace('#id=','');
    return document.id.outerHTML;
    }  
} 
于 2013-03-23T16:58:25.830 に答える
1

ページが読み込まれるたびに、以前のすべての JavaScript が消去されるため、それを行うことはできません。現在のページをアンロードせずに ajax を使用して新しいページをロードするのが最善の方法です。ただし、セキュリティ上の制限により、両方のページが同じドメインからのものである場合にのみ機能します。

于 2013-03-23T16:57:57.857 に答える