2012-01-14 103 views
1

私はこの問題をできる限り最善のものにしようとします。なぜなら、説明することは非常に難しいからです。基本的に、私はこのニュースサイトに接続し、主にjQuery関数のload()を使用して主要な記事を解析するphonegap iphoneアプリケーションを構築しています。問題は、サイトにiffyモバイルバージョンがあり、iphoneを使用してアクセスすると、自動的にモバイルサイトが読み込まれ、他の時にメインサイトが読み込まれることがあります。彼らは、メインサイトがロードされている場合(私はモバイルサイトの周りに構築されたように)、異なるリファレンスクラスとIDを持っている、私のアプリは完全に役に立たないです。ウェブサイトには、設定するスクリプト(ほとんどの場合)は、モバイルやデスクトップサイトをロードするかどうかを決定するセッション変数を持っている、そしてそれがここに発見された:サーバー上のモバイルサイトを変更しますか?

http://www.macrumors.com/mr-toggleMobile.php?mobile=1 

1は、モバイルサイトと0意志を設定しますデスクトップサイトを設定します。モバイル・サファリと通常のサファリの両方で動作します。このスクリプトとjavascript/jqueryを使用して、モバイルサイトまたはデスクトップをプルするかどうかload()メソッドを使用するときに変更する方法はありますか? (私はいくつかのケースでデスクトップが必要です)。ありがとう!

答えて

1

load()の代わりにajax()を使用してください。

このようにして、URLにdataオプションを設定できます。ここdataの説明は次のとおりです。

などについては

"Data to be sent to the server. It is converted to a query string, if not already a string. It's appended to the url for GET-requests. See processData option to prevent this automatic processing. Object must be Key/Value pairs. If value is an Array, jQuery serializes multiple values with same key based on the value of the traditional setting (described below)."

$.ajax({ 
    url:"http://www.macrumors.com/mr-toggleMobile.php", 
    data:"mobile=1", 
    error: function(jqXHR, textStatus, errorThrown){ 
     //textStatus is the error text, like timeout or abort 
    }, 
    success:function(data){ 
     //data is the downloaded page. Make your stuff here 
    } 
}); 

あなたは時々あなたは、どちらか一方を必要とするので、あなたは機能を作ることができる:

function getData(var){ 
    $.ajax({ 
     url:"http://www.macrumors.com/mr-toggleMobile.php", 
     data:"mobile="+var, 
     error: function(jqXHR, textStatus, errorThrown){ 
      //textStatus is the error text, like timeout or abourt 
      return "Error: "+textStatus; 
     }, 
     success:function(data){ 
      //data is the downloaded page. Make your treatment here 
      return data; 
     } 
    }); 
} 

その後あなたは次のように電話します:

var newsPage = getData(1); //1 for mobile, 0 for normal 
//do whatever you need with newsPage, like a if for checking if came starting with 'Error'. If not, then seems ajax was successful. 

詳細とオプションについては、$.ajax() at jQuery's API Page