因為全新安裝了 phpBB 2.0.18,所以又把以前裝過的 MOD 再通通重裝一次.... 嗚~~~
我發現這個【Accurate BBCode Insertion Mod】只對 IE 有效,對我的 Safari 則是一點用也沒有!
按下 Quote、Img、URL 按鈕,代碼還是跑到最後面,一點也不管現在的游標位置....
我猜想這可能是【function bbplace(text)】函示,傳回的游標位置有誤,導致 BBcode 在 Safari 中失效....
問題是.... 我研究了半天也不知道問題出在哪.... 都是比較與運算,好像沒有傳回游標位址的動作....
代碼: 選擇全部
function bbplace(text) {
var txtarea = document.post.message;
if (txtarea.createTextRange && txtarea.caretPos) {
var caretPos = txtarea.caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? caretPos.text + text + ' ' : caretPos.text + text;
txtarea.focus();
} else {
txtarea.value += text;
txtarea.focus();
}
}
在原廠討論區有人針對 Mozilla 修改程式,就像這樣:
http://www.phpbb.com/phpBB/viewtopic.ph ... 0c866fa723
代碼: 選擇全部
function bbplace(text) {
var txtarea = document.post.message;
if (txtarea.createTextRange && txtarea.caretPos) {
var caretPos = txtarea.caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? caretPos.text + text + ' ' : caretPos.text + text;
txtarea.focus();
} else if (txtarea.selectionStart || txtarea.selectionStart == '0') {
var startPos = txtarea.selectionStart;
var endPos = txtarea.selectionEnd;
txtarea.value = txtarea.value.substring(0, startPos)
+ text
+ txtarea.value.substring(endPos, txtarea.value.length);
txtarea.focus();
txtarea.selectionStart = startPos + text.length;
txtarea.selectionEnd = startPos + text.length;
} else {
txtarea.value += text;
txtarea.focus();
}
}
但是很不幸的..... 這個程式真的是【it works in Mozilla too】,也就是 IE 跟 Mozilla 都能用,但 Safari 還是一點用也沒有..... 嗚~~~
也有人說【Safari 1.2.4 it does not work】,事實上 2.0.2 還是不能用...
最後能找到的也只有這個版本了:
代碼: 選擇全部
## 2004-05-18 - Version 1.0.1
## - Improvements to make it work in all of Mozilla Firefox 1, Opera 8 and IE 6
## - not tested on OS-X Safari
同樣的也有人說 Safari 2.0 還是不能用.... 哎~~
我猜想根本的問題是出在 phpBB 本身不支援 Safari...
因為在 Safari 上面按【表情符號】,代碼只會加到最後,而不會加在游標後面,於是 BBcode 也不行....