2015-09-01 102 views
0

我遇到了以下問題,也許有人可以給我一點建議或解決方法。我有以下問題:js/jquery異步內容覆蓋頁面

我的頁面的合作伙伴爲我提供了一個代碼,我應該在我的頁面上使用該代碼,該代碼將一些內容寫入我的頁面,我真的很想。

很抱歉,此內容只與生活在特定地區的人有關。 因此,我使用的ip-api服務返回當前用戶所在的區域,並讓我使用該服務。這是通過jsonp ajax調用完成的。 如果該人員位於正確的地區,則應執行該守則,如果他不在,則不應該。

問題是要執行的代碼包含一個document.write。因此,如果我在ip-api回調中調用該代碼,則該文檔已全部加載,並且document.write將覆蓋我的頁面。

所以最大的問題是:有沒有辦法將document.write輸出捕獲到類似PHP輸出緩衝區的變量中?或者,也許某種方式來覆蓋iframe的內容而不是整個頁面?任何阻止document.write覆蓋頁面並將其輸出重定向到頁面一部分的東西就足夠了。

感謝您的時間:)

PS:這是代碼即時通訊談論:

 $.ajax({ 
 
      url: "http://ip-api.com/json/", 
 
      dataType: "jsonp", 
 
      success: function(response) { 
 
       if(
 
         response["city"]=="Hamburg" || 
 
         response["region"]=="SH" || 
 
         response["region"]=="NW" 
 

 
       ){ 
 
        document.write("Some Content here"); 
 
       } 
 
      } 
 
     });

回答

2

更換

document.write("Some Content here");

$('#my-container').html('Some content here');

+0

Corrilld,注意,您必須有* *這樣一個div坐在你的頁面內容上注入:''

。或者,您可以指定現有div的'id',並且由ajax注入的內容將覆蓋指定的div *的內容。 – gibberish

+0

不幸的是,這是不可能的,因爲代碼不是我的,我不能改變它(它直接從我的合作伙伴加載)。他不會爲我改變他的守則,我沒有足夠的影響力;) – Corriild

+0

然後,你需要繼續前進,找到一個有能力的合作伙伴 – AlienWebguy