新聞中心
ecshop出現(xiàn)run() error:undefined解決辦法
無憂主機(jī)小編偶爾會遇到關(guān)于ecshop的transport.js報錯,相信在使用ECshop的AJAX(即:transport.js)很多站長也有遇到過下面問題的。 IE有時候會出現(xiàn):ReferenceError: process_request is not defined,F(xiàn)F則出現(xiàn):transport.js/run() error:undefined,其實(shí)這完全和transport.js無關(guān)。那么問題出在哪里呢? (1)首先找到445-447行發(fā)現(xiàn)了這兩句: /* 定義兩個別名 */ var Ajax = Transport; Ajax.call = Transport.run; (2)然后再找到735發(fā)現(xiàn)了這句: Ajax.onRunning = showLoader; 其實(shí)問題就是出在這句的showLoader函數(shù)里面。因?yàn)樵谠摵瘮?shù)里753行有這段語句 if ( ! obj && process_request),而出現(xiàn)上述問題就是說變量process_request沒有定義??! (3)為什么說該變量沒有定義呢? 原因很簡單,因?yàn)镋C很多時候都是將這句話: <script type="text/javascript"> var process_request = "{$lang.process_request}"; ..... </script> 放在最后面的....在中途有其他什么處理、JS載入、JS運(yùn)行而還沒運(yùn)行到最下面的時候當(dāng)然就出現(xiàn)在上述的錯誤!!! process_request這個變量到底有什么用呢?其實(shí)就是為了創(chuàng)建一個DIV層顯示“正在處理您的請求...”這個信息??!為什么要這樣實(shí)現(xiàn)呢?因?yàn)檫@樣可以支持多語言。 第一種解決辦法: (1)在showLoader函數(shù)體里面加入這句var process_request = '正在處理您的請求...';英文的話就改成英文了。。。 (2)將var process_request = "{$lang.process_request}";這句話放在<header>下面的<script>里面 (3)重新定義Ajax.onRunning這一事件例如可以自己新建一個函數(shù)run,Ajax.onRunning = run 第二種解決方法: 對于這個問題,官方的回復(fù)是”有時ajax抓取訂單信息不全,出現(xiàn)這樣的錯誤信息,但這個不會影響您的正常使用,請您放心。如果要關(guān)閉,可以在后臺里的商店設(shè)置 基本設(shè)置中去除?!?,實(shí)際上,按照官方這個說法,問題還是照樣存在,解決的辦法是“眼不見,心不煩”,將這條彈出語句注釋掉: 找到j(luò)s/transport.js, 第227行: alert(this.filename + "/run() error:" + ex.description); 將之改為: /* alert(this.filename + "/run() error:" + ex.description); */ 無憂主機(jī)相關(guān)文章推薦閱讀: ECSHOP廣告位無法顯示問題怎么辦? 無憂主機(jī)教你去除ECSHOP首頁FLASH空白處 ECSHOP錯誤提示UNSERIALIZE()ERROR AT OFFSET 130 OF 138 BYTES解決辦法 ECSHOP后臺編輯分類出現(xiàn)“PHP WARNING INVALID ARGUMENT SUPPLIED FOR FOREACH() IN XXX”
本文地址:http://www.gle-technology.com/ecshop/16294.html