iT邦幫忙

0

jquery xml 讀取 遇到 Chrome 就是有問題.

jquery xml 讀取 遇到 Chrome 就是有問題.
IE、Firefox、Safari、Opera 都執行正常.
但 Chrome 就是有問題. (firebug抓到的 Uncaught ReferenceError: $ is not defined)
有人知道如何修改嗎?謝謝.

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.pack.js"></script>
<script type="text/javascript"> 
	/* 讀取xml 開始 ------------------------------------------------------------------------------ */
	$.ajax({
    url:'http://192.168.0.20/1f/admin/sql.php?page=getstatus',
    type: 'Post',
    dataType: 'xml',//資料型態可以不設定,且此型態不可是text或html
    timeout: 1000,
    error: function(xml){
        alert('讀取xml錯誤'+xml); //當xml讀取失敗
    },
    success: function(xml){
        $(xml).find("item").each(function(i){        
            var total=$(xml).find("tables").length;//xml的筆數
			alert($(xml).find("tables").length);
			var numoftables = $(xml).find("tables").length;
			for(j=0;j<numoftables;j++)
			{
					var itemsrc=$(this).find("ts_num").eq(j).text();
					var itemstatus=$(this).find("ts_status").eq(j).text();
					$('.ooxxaa ul').append('<li>'+itemsrc+'</li><br>');
			        $('.ooxxaa ul').append('<li>'+itemstatus+'</li><br>');
			}
	/* 讀取xml結束 ------------------------------------------------------------------------------ */		
	});
  }
	});
</script>


<div class="ooxxaa"> <ul></ul> </div>
4
丁丁 (Dean)
iT邦大師 6 級 ‧ 2011-10-27 11:39:24
最佳解答

先加下列這行...

<pre class="c" name="code">jQuery.support.cors = true;

我之前也是 $.ajax 有問題, 改用$.get 就 OK 了

<pre class="c" name="code">
$.get('ajax/test.html', function(data) {
  $('.result').html(data);
  alert('Load was performed.');
});
gavinnokia iT邦研究生 3 級 ‧ 2011-10-27 12:07:49 檢舉

請問您知道
$.ajax 為什麼 14 15的Chrome不行.
而android 上的Chrome可以嗎?
正在了解原因中.

gavinnokia iT邦研究生 3 級 ‧ 2011-10-27 15:51:59 檢舉

加在第一行.jQuery.support.cors = true;
這我知道.
但是14.15版的Chrome就是不行.
還是可以說一下.您測試可以的.code ,謝謝.
連$.support 都不支援說 XD

<pre class="c" name="code">


<script type="text/javascript" src="jquery-latest.js"></script> 
<script>
jQuery.support.cors = true;
support = $.support;
for (key in support) {
	document.write('support.' + key + ' = ' + support[key] + '<br />');
}
</script>
gavinnokia iT邦研究生 3 級 ‧ 2011-10-31 16:53:47 檢舉

找到問題了.
感謝您的測試.
問題是 no script引起的.
萬分感謝中.

6
player
iT邦大師 1 級 ‧ 2011-10-26 20:52:30

你改用
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>

試試?
如果可以的話
應該是 Chrome 沒有等待 jQuery 展開他自己的Code 所造成的?

如果還有問題的話
請試著把你的code改以 setTimeout() 的方式觸發看看?

gavinnokia iT邦研究生 3 級 ‧ 2011-10-26 21:59:57 檢舉

xml file

&lt;pre class="c" name="code">
&lt;?xml version="1.0" encoding="UTF-8"?>
&lt;output>&lt;item>&lt;tables>&lt;ts_num>1&lt;/ts_num>&lt;ts_status>seat&lt;/ts_status>&lt;/tables>&lt;tables>&lt;ts_num>2&lt;/ts_num>&lt;ts_status>empty&lt;/ts_status>&lt;/tables>&lt;tables>&lt;ts_num>3&lt;/ts_num>&lt;ts_status>empty&lt;/ts_status>&lt;/tables>&lt;tables>&lt;ts_num>4&lt;/ts_num>&lt;ts_status>empty&lt;/ts_status>&lt;/tables>&lt;tables>&lt;ts_num>5&lt;/ts_num>&lt;ts_status>seat&lt;/ts_status>&lt;/tables>&lt;tables>&lt;ts_num>6&lt;/ts_num>&lt;ts_status>seat&lt;/ts_status>&lt;/tables>&lt;tables>&lt;ts_num>7&lt;/ts_num>&lt;ts_status>empty&lt;/ts_status>&lt;/tables>&lt;tables>&lt;ts_num>8&lt;/ts_num>&lt;ts_status>empty&lt;/ts_status>&lt;/tables>&lt;tables>&lt;ts_num>9&lt;/ts_num>&lt;ts_status>empty&lt;/ts_status>&lt;/tables>&lt;tables>&lt;ts_num>10&lt;/ts_num>&lt;ts_status>empty&lt;/ts_status>&lt;/tables>&lt;tables>&lt;ts_num>11&lt;/ts_num>&lt;ts_status>empty&lt;/ts_status>&lt;/tables>&lt;tables>&lt;ts_num>12&lt;/ts_num>&lt;ts_status>empty&lt;/ts_status>&lt;/tables>&lt;tables>&lt;ts_num>13&lt;/ts_num>&lt;ts_status>empty&lt;/ts_status>&lt;/tables>&lt;tables>&lt;ts_num>15&lt;/ts_num>&lt;ts_status>empty&lt;/ts_status>&lt;/tables>&lt;tables>
&lt;/item>&lt;/output>
gavinnokia iT邦研究生 3 級 ‧ 2011-10-26 22:00:50 檢舉

你說的測試不行 ^^.
你可以用 上面的 xml file 測測看.

6
wildox
iT邦新手 3 級 ‧ 2011-10-27 16:25:34

我在測試你的XML的時候發生錯誤,你的XML裡面多了一個<tables>

gavinnokia iT邦研究生 3 級 ‧ 2011-10-27 18:47:34 檢舉

多的那個可以拿掉.因為那是 ithome 的code 放不下.沒刪除到的.
還是謝謝你.

我要發表回答

立即登入回答