代码在我的电脑上以chrome工作,但在我的设备中不起作用

时间:2014-04-24 18:44:41

标签: javascript extjs sencha-touch

更新2:

我遵循Evan Trimboli的建议使用XMLSerializer并且它有效。 唯一的问题是:

var lines = (new XMLSerializer()).serializeToString(records[0].raw).split('\n');

行[0] ='噪音,20140425001730,6,6,COMMUNITY_NOISE,40.8'

因为数据的结束标记和第一行的开头之间没有'\ n'。

我可以简单地使用split('>')[1]来获取想要的部分,但这不是最好的做法。

所以我的问题是: 如何获取xml节点的内容?

(我想这可能很难,因为方法“serializeToString()”已经将结构化数据转换为字符串。)


更新

在多行代码后插入很多console.log()后,我终于找到了代码导致问题的地方。

正是这行代码

   var lines = records[0].raw.innerHTML.split('\n');

导致问题,因为它的所有后续console.log()输出都没有打印出来。

所以我怀疑它是innerHTML在Windows Phone 8中不起作用,我也测试了代码,它在Android(HTC Sensation XE)中也不起作用。

所以我的问题是:为了获取记录[0] .raw。

的内容,innerHTML的替代方法是什么?

非常感谢。


我正在使用Sencha Touch并尝试从远程服务器获取数据

这是我的商店

Ext.define('webTrak.store.NoiseStore', {
    extend: 'Ext.data.Store',
    requires: ['webTrak.model.noiseChunk', 'Ext.data.reader.Xml'],
    config:{
        autoLoad: true,
        storeId: 'NoiseStore',
        model: 'webTrak.model.noiseChunk',
        proxy: {
            type: 'ajax',
            //url: "https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20xml%20where%20url%3D'http%3A%2F%2Fwebtrak.bksv.com%2Fmel%2Fdata%2F46610526'&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=",
            url: 'http://webtrak.bksv.com/mel/data/46611635',
            //url:'app/store/now.xml',
            reader: {
                type: 'xml',
                //rootProperty: 'results',
                record: 'data'
            }
        }
    }

});

和我的控制器

 noiseStore.load({
            callback: function (records, operation, success) {
                myop = records;

                if (!success) {
                    Ext.Msg.alert('Failed!', records[0]);
                }
                else
                {
                    Ext.Msg.alert('Success!', $(records[0].raw).html());
                }

                //var lines = $(records[0].raw).html().split('\n');
                var lines = records[0].raw.innerHTML.split('\n');
                Ext.Msg.alert('number of lines', lines);


                Ext.Object.each(lines, function (key, value, myself) {
                    //window.setInterval(function () { }, 1000);
                    Ext.Function.defer(function () {
                        var fields = value.split(',');
                        var isNoise = fields[0];
                        if (isNoise === 'noise') {
                            console.log('noise = ' + fields[5]);
                            Ext.Msg.alert('noise', fields[5]);

                            var locid = fields[3];
                            var noisevalue = fields[5];

                            var overlayTmp = new Ext.Template('<div class="overlay">{noiseValue}</div>', { compiled: true });
                            overlayTmp.compile();
                            var overlayHtml = overlayTmp.apply({ noiseValue: noisevalue });

                            var tempOverLay = sensorSet[locid];
                            tempOverLay.onRemove();

                            sensorSet[locid].setValues({
                                content: overlayHtml
                            });

                            sensorSet[locid].onAdd();
                            sensorSet[locid].draw();
                        }
                        else {
                            console.log('radar = ' + fields[10]);
                        }
                    }, 2000);
                    //window.setInterval(function () {

                    //}, 1000);


                });

            }
        });

这是数据来源:http://webtrak.bksv.com/mel/data/46611635

请帮助它在移动设备上运行~~~谢谢

0 个答案:

没有答案