изменить мобильный сайт на сервере? - PullRequest
1 голос
/ 15 января 2012

Я постараюсь сформулировать этот вопрос как можно лучше, потому что это очень трудно объяснить.По сути, я создаю приложение phonegap для iphone, которое подключается к этому новостному сайту и анализирует основные статьи для чтения, в основном используя функцию load () jQuery.проблема в том, что у сайта есть ненадежная мобильная версия, которая при доступе через iphone иногда автоматически загружает мобильный сайт, а иногда - основной сайт.У них разные ссылочные классы и идентификаторы, поэтому (как я построил на мобильном сайте), если основной сайт загружен, мое приложение совершенно бесполезно.У веб-сайта есть сценарий, который устанавливает (скорее всего) переменную сеанса, которая определяет, загружать ли мобильные или настольные сайты, и находится здесь:

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

1 задает мобильный сайт и0 установит рабочий стол сайта.Он работает как на мобильном сафари, так и на обычном сафари.Есть ли способ, используя этот скрипт и javascript / jquery, изменить при использовании метода load (), тянет ли он мобильный сайт или рабочий стол?(Мне понадобится рабочий стол в нескольких случаях).Спасибо!

1 Ответ

1 голос
/ 29 июня 2012

Вместо использования load() используйте ajax().

Таким образом, вы можете установить опцию data для URL. Вот объяснение 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)."

Например ,::1012*

$.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 () на странице API jQuery

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...