2012-05-25 45 views
4

我找遍這裏看到,因爲這麼多人問這個問題,但不管如何,我不斷收到undefined ..的Javascript重載()不工作

function remove_item(itemid) { 
    var window = top.location; 
    var host = window.host; 

    $.ajax({ 
     url: "http://"+host+"/backend/remove_lockbox.php?id="+itemid, 
     success: function() { 
      $(document).ajaxStop(function(){ 
       window.top.location.reload(); 
      }); 
     } 
    }); 
} 

這是我的代碼。我試過window.location.reload,host.location.reload ...我嘗試了一切,我一直得到undefined ...位置的父母總是undefined無論是window,host,window.top,任何。 有人可以幫我嗎?

+1

沒有錯'window.top.location.reload();' ,但真的嗎? 'var window = top.location;'?這看起來不正確。 –

+0

您使用哪個瀏覽器? –

+0

另一種方式window.top.location = window.top.location –

回答

9

所以你在做

var window = top.location; 

,比你做

window.top.location.reload(); 

所以你實際上是在說

top.location.top.location.reload(); 

爲什麼要使用一個variabl當已經定義並且具有不同含義時,命名窗口是什麼?那很不好。

如果您使用的幀我希望看到類似

parent.location.reload(true); 

或者只是一個普通的老式窗

window.location.reload(true); 
+1

你不能覆蓋'窗口',FYI。 –

1

嘗試這種方式,它在鉻中工作正常,因爲我知道這應該在所有現代瀏覽器中都能正常工作。

function remove_item(itemid) { 

    var host = window.location.host; 

    $.ajax({ 
     url: "http://"+host+"/backend/remove_lockbox.php?id="+itemid, 
     success: function() { 
      $(document).ajaxStop(function(){ 
       window.location.reload(); 
      }); 
     } 
    }); 
} 

以下爲window.locationwindow.location.hostwindow.location.reload工作示例。

http://jsbin.com/apemen/3