#javascript
#javascript
Вопрос:
Пожалуйста, кто-нибудь может мне помочь в этом
это код JavaScript, который вставляет определенный bbcode, скажем, [b] [/ b] в поле текстовой области, когда пользователь нажимает на него, как в V Bulletin и форумах SMF, когда пользователь нажимает на изображение с B [b] [/ b], которое появляется в форме текстовой области,
теперь я заставил свой работать, хотя я не силен в JavaScript, но проблема в том, что он работает только в INTERNET EXPLORER и не работает в OPERA и Mozilla, поэтому мне нужна помощь, чтобы заставить его работать в другом браузере, кроме IE
<HTML>
<Head>
<script type="text/javascript">
var isSelected = false;
function copySelection(workArea){
workArea.workText = document.selection.createRange();
isSelected = true;
}
function wrapInTags(workArea,isTag){
if (isSelected)
{
workArea.workText.text = "[" isTag "]" workArea.workText.text "[/" isTag "]";
if (workArea.workText.text==''){isSelected=false;workArea.focus()}
}
}
function AddURL(workArea){
var AddURL="";
var txt="";
txt=prompt("Enter URL for the link.","http://");
AddURL="[.url=" txt "]";
AddURL2="[./url]";
if (isSelected)
{
workArea.workText.text = AddURL workArea.workText.text AddURL2;
if (workArea.workText.text==''){isSelected=false;workArea.focus()}
}
}
</Script>
</Head>
<Body>
<Form name='Form1' method=post action='process.php'>
<textarea name='area1' cols='40' rows='4' onselect="copySelection(this)"></textarea><br>
<input type=button value='Italic' onclick="wrapInTags(this.form.area1,'i')">
<input type=button value='Bold' onclick="wrapInTags(this.form.area1,'b')">
<input type=button value='Underline' onclick="wrapInTags(this.form.area1,'u')">
<input type=button value='Link' onclick="AddURL(this.form.area1)">
<br><br>
<input type=submit value='Submit'>
</Form>
</Body>
</HTML>
Комментарии:
1. проверьте это, это может помочь forums.mozillazine.org/viewtopic.php?f=38amp;t=601831
Ответ №1:
document.selection и все его методы и свойства доступны только для IE, но есть и другие вещи, которые хорошо работают в других браузерах.
var isSelected = false;
function copySelection(workArea){
workArea.workText = document.selection ? document.selection.createRange() : {text:workArea.value.substring(workArea.selectionStart,workArea.selectionEnd)};
workArea.offsetSelection = workArea.selectionStart;
isSelected = true;
}
function wrapInTags(workArea,isTag){
if (isSelected)
{
if(document.selection){
workArea.workText.text = "[" isTag "]" workArea.workText.text "[/" isTag "]";
} else {
workArea.value =
workArea.value.substring(0,workArea.offsetSelection)
"[" isTag "]" workArea.workText.text "[/" isTag "]"
workArea.value.substring(workArea.offsetSelection workArea.workText.text.length)
}
if (workArea.workText.text==''){
isSelected=false;workArea.focus()
}
}
}
function AddURL(workArea){
var AddURL="";
var txt="";
txt=prompt("Enter URL for the link.","http://");
AddURL="[.url=" txt "]";
AddURL2="[./url]";
if (isSelected) {
if(document.selection){
workArea.workText.text = AddURL workArea.workText.text AddURL2;
} else {
workArea.value =
workArea.value.substring(0,workArea.offsetSelection)
AddURL workArea.workText.text AddURL2
workArea.value.substring(workArea.offsetSelection workArea.workText.text.length)
}
if (workArea.workText.text==''){
isSelected=false;workArea.focus()
}
}
}
Решение, на которое указал Дэвид, также работает хорошо.