2010-09-13
近剛來的這個公司有點忙,都沒時間學習了,所以好久都沒有發表我關于學習中遇到問題的博文了,公司這邊是好多以前做的網站維護中出現問題,當然就得我這個新來的程序員來處理,還有許多網站遭遇掛馬等等問題,這幾天我就準備寫一篇比較基礎篇的防掛馬,當然也不是自己完全領悟的,是根據自己的經驗和網上一些前輩的知識總結出來的,希望可以幫助一些比我還新的新手解決問題,可以不用走我走過的歪路,這次先說個今天剛剛遇到的小問題。
今天上午同事突然問我,說怎么我以前做的一個網站后臺傳不上去圖片了,我第一個想法就是以前的既然沒問題,那現在出問題無非就是服務器或他的瀏覽器出現了問題,服務器的問題一般就是可能服務器管理員設置了權限,導致文件不能上傳,而瀏覽器的就比較麻煩了,因為現在本來IE和火狐的兩大陣營給我們這些從事網站制作的工作人員帶來了很多不便,當然還是因為自己技術不行,不然就不會有什么不便,然后我就登陸了那個網站的后臺測試了一下,在我這邊一起正常,我又走過去讓他給我演示了一下他那邊出現的問題,問題是后面的文本編輯器點擊上傳圖片的按鈕后沒有反應,我看了下他的瀏覽器,是前幾天剛剛出來的IE8,唉,無奈,出IE7的時候就帶來了很多問題,現在IE8又要讓人頭疼幾天了,介于我自己的技術不是很高,所以我就打算直接上網上先搜搜結果,運氣很好,看來這個問題是近的熱門,對了,剛才忘了說我做的網站和大多數網站一樣都是用的ewebeditor在線文本編輯器,呵呵,我不評價漏洞之類的問題,怎么說都是免費的,而且已經是很好用的東西了。
大概問題原因就是IE8屏蔽了一個功能,解決辦法就是在ewebeditor文件夾里找Editor.js這個文件,網上的都說是在include文件夾,不過我相信很多和我一樣為了盡量安全一點把路徑都改過的,我的是在一個叫JS的文件夾中,當然你的在什么地方你應該知道,如果是用的別人的后臺系統那就搜索下,一般來說Editor.js這個文件的名字是不會改的,在這個文件中有
if (element.YUSERONCLICK) (element.YUSERONCLICK + 'anonymous()');
這句代碼,處理這個問題的關鍵就在'anonymous()'這里,IE8中anonymous不被支持,所以要用 'onclick(event)',但如果單純的改成
if (element.YUSERONCLICK) (element.YUSERONCLICK + 'onclick(event)');
那么在IE7或其他版本又會出現問題,那么就加個判斷,后改成:
if(navigator.appVersion.match(/8./i)=='8.') { if (element.YUSERONCLICK) (element.YUSERONCLICK + 'onclick(event)'); } else { if (element.YUSERONCLICK) (element.YUSERONCLICK + 'anonymous()');
這樣一來就沒有問題了,如果現在正在因為這個而頭痛的同僚,可以常識按我說的修改一下,修改后記得好清一下緩存,因為緩存比較喜歡把圖片或JS之類的文件保存到你自己的電腦上直接調用。寫得好像有點亂,我總結一下就是:
找到Editor.js這個文件,然后把其中
if (element.YUSERONCLICK) (element.YUSERONCLICK + 'anonymous()');
這句代碼改成
if(navigator.appVersion.match(/8./i)=='8.') { if (element.YUSERONCLICK) (element.YUSERONCLICK + 'onclick(event)'); } else { if (element.YUSERONCLICK) (element.YUSERONCLICK + 'anonymous()');
保存-清理緩存-在打開從新嘗試,看看你的ewebeditor在IE8下能不能點出來那些小的框框。