Javascript 在服务器上更改移动站点?

Javascript 在服务器上更改移动站点?,javascript,jquery,cordova,load,Javascript,Jquery,Cordova,Load,我会尽力把这个问题说清楚,因为它很难解释。基本上,我正在构建一个phonegap iphone应用程序,该应用程序连接到此新闻站点并解析主要文章以供阅读,主要使用jQuery函数load()。问题是,该网站的移动版本不太可靠,当使用iphone访问时,有时会自动加载移动网站,有时会加载主网站。他们有不同的参考类和ID,所以(就像我在移动站点上构建的那样),如果主站点被加载,我的应用程序就完全无用了。该网站确实有一个脚本,该脚本设置(最有可能)一个会话变量,用于确定是加载移动站点还是桌面站点,可在

我会尽力把这个问题说清楚,因为它很难解释。基本上,我正在构建一个phonegap iphone应用程序,该应用程序连接到此新闻站点并解析主要文章以供阅读,主要使用jQuery函数load()。问题是,该网站的移动版本不太可靠,当使用iphone访问时,有时会自动加载移动网站,有时会加载主网站。他们有不同的参考类和ID,所以(就像我在移动站点上构建的那样),如果主站点被加载,我的应用程序就完全无用了。该网站确实有一个脚本,该脚本设置(最有可能)一个会话变量,用于确定是加载移动站点还是桌面站点,可在此处找到:

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

1将设置移动站点,0将设置桌面站点。它适用于移动safari和普通safari。在使用load()方法时,使用此脚本和javascript/jquery是否有办法改变它是拉入移动站点还是拉入桌面?(在某些情况下,我需要桌面)。谢谢

不要使用
load()
,而是使用
ajax()

通过这种方式,您可以为url设置
数据
选项。以下是对数据的解释:

“要发送到服务器的数据。如果尚未转换为字符串,则会将其转换为查询字符串。它被附加到GET请求的url。请参阅processData选项以防止此自动处理。对象必须是键/值对。如果value是一个数组,jQuery将基于传统设置(如下所述)的值用相同的键序列化多个值。“

例如:

$.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.

有关更多说明和选项,请选中而不是使用
load()
,而是使用
ajax()

通过这种方式,您可以为url设置
数据
选项。以下是
数据
的说明:

要发送到服务器的数据。如果尚未转换为字符串,则会将其转换为查询字符串。它被附加到GET请求的url。请参阅processData选项以防止此自动处理。对象必须是键/值对。如果value是一个数组,jQuery将基于传统设置(如下所述)的值用相同的键序列化多个值。“

例如:

$.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.
有关更多说明和选项,请选中