2016-08-10 11 views
1

私は理解できないこのコードに問題があります。 Window.locationは私のために完全に働いていましたが、今回はそうではありません。この方向に手動でアクセスすると機能しますが、リダイレクトは機能しません。ページを更新するだけです。私は何をすべきかわからない!JavaScriptのwindow.locationが機能しません

私はに転送しようとしました。をGoogleに転送するか、それでもまだ更新します。

$("#remove-form").on("submit", function(event) { 
    usunRow(); 
}); 

function remove() { 
    var id=document.getElementById("id").innerHTML; 
    if (id != "ID"){ 
     $('#remove-modal').modal('show'); 
    } else $('#error-modal').modal('show'); 
} 

function usunRow(){ 
    var id=document.getElementById("id").innerHTML; 
    if (id != "ID"){ 
     window.location.href = "usun.php?id="+id; 
     alert("usun.php?id="+id); 
    } else $('#error-modal').modal('show'); 
} 

ここで私はあなたが使用して試すことができ、この

+1

このhttp:// stackoverflowを試してください。com/questions/18634383/window-location-href-and-window-open-in-javascript –

+0

この 'usunRow()'関数をどこで呼びますか?そのエリアコードも提供してください。 –

+0

あなたの警告(usun.php?id = "+ id")は来ていますか? – adi

答えて

1

変更window.locationwindow.location.hrefには、この意志は、新しい場所にウィンドウの位置を変更します。

  1. 完全に必ずごusunRow()関数呼び出しを作成して、お使いのブラウザコンソールには 問題はありません。
  2. またあなたif文はそれを実行していないかもしれすると、あなたのページ だけでその場所を変更しないリフレッシュすることを理由になります、あなたのif文が実行されることを確認してください。

は、フォームを送信すると、return falseは、静的なページを維持し、あなたのwindow.location.hrefがあなたのページにリダイレクトするページが更新されますので、偽リターンを追加

を更新しました。

$("#remove-form").on("submit", function(event) { 
      usunRow(); 
      return false; 
}); 

これはあなたの問題を解決します。

+0

は動作しません。まだ更新されます – Ethris

+0

'if'が実行されていることを確認してください。新しいURLを示す警告が表示されますか? –

+0

'usun.php?id = + id'を' https:// www.google.com'に変更して、単に目的を確認するために 'unsun.php'に問題がないことを確認してください。 –

-1

のために使用していますすべての機能です:

window.location.href = ""; 
+0

答えを拒否した人は理由を教えてください? –

+0

window.location.hrefは関数ではありません – UnknownFury

+0

問題を正しく読んでください。問題はwindow.locationにあります –

0

使用この:

window.location.href = "..." 

それは十分に文書ではないですが、window.locationは、実際に、そのようなページの再読み込みおよび/風変わりな/ブラウザ固有のいくつかの非可読または文書化されていないなどの非標準の動作を持つオブジェクトであり、フィールド。

+0

は動作しません。まだ更新されます – Ethris

0

コンソールを開いてwindow.locationと入力すると、動作しない理由が分かります。これは、現在の位置に関する多くの情報を含むオブジェクトです:

Location {hash: "", search: "", pathname: "https://stackoverflow.com/questions/38870016/javascript-window-location-does-not-work", port: "", hostname: "stackoverflow.com"…}ancestorOrigins: DOMStringListassign:()hash: ""host: "stackoverflow.com"hostname: "stackoverflow.com"href: "http://stackoverflow.com/questions/38870016/javascript-window-location-does-not-work"origin: "http://stackoverflow.com"pathname: "https://stackoverflow.com/questions/38870016/javascript-window-location-does-not-work"port: ""protocol: "http:"reload: reload()replace:()search: ""toString: toString()valueOf: valueOf()__proto__: Location 

したがって、あなたは、文字列(ターゲットURL)で、このオブジェクトを交換してみてください。この位置オブジェクトの既述のプロパティhrefは、必要なオブジェクトです。window.location.href = "new url"またはショートバージョンlocation.href = "new url"

+0

> Window.locationは読み取り専用のLocationオブジェクトですが、DOMStringを割り当てることもできます。つまり、ほとんどの場合、文字列であるかのように作業することができます。 'location = 'http:// www.example.com'は' location.href = 'の同義語ですhttp://www.example .com。 – pawel

0

usunRow()関数をどのように呼び出しますか? アンカーでクリックイベントを防止している可能性があります。そのため、ページが更新されます。 clickイベント内にpreventDefault()が必要です。

+0

私は 'usunRow()'がリンクやボタン上のイベントリスナーによってトリガされ、どこかに 'preventDefault'コールがないことを考えています。これはリフレッシュを誇張するでしょう。 – pawel

関連する問題