0

我现在正在创建这个提交系统。我想创建它以便它插入一些文本(比如[b][/b]) 单击 div 时。这是我们正在使用的示例:

<div class="insertBBC" title="Bold Text" onClick="moveNumbers([b][/b])" id="bold">
                        <p>B</p>    
                    </div>  
                    <div class="insertBBC" title="Italic Text">
                        <p>I</p>
                    </div>
                    <div class="insertBBC" title="Bullet Points">
                        <p>BP</p>

等等......
我也想要它,所以当文本字段中已经有内容时,它不会从那里删除任何东西,而且,它应该[b][/b]在光标所在的位置添加标签。当文本被选中时,它会将 [b] 标签放在所选内容的前面,将 [/b] 标签放在后面。有点像BBC作品。我不知道我怎样才能做到这一点,我已经研究了很长时间,我看到人们告诉它只有 JQuery 才有可能,而且我还不知道JqueryJS所以是的.. 我会避免它如果可能的话。

此外,这些是文本框。其中有两个,我想插入当前处于活动状态的那个。

<br><textarea name="newPost" placeholder="Post Preview(Will Be Displayed on the Index Page)" cols="100"  rows="10"/></textarea><br>
<br><textarea name="newPostPreview" placeholder="Post Text" cols="100"  rows="10"/></textarea>

有什么线索吗?谢谢 :)

4

1 回答 1

1

不幸的是,您唯一的选择是使用 jQuery 或 Javascript(或其他浏览器端库)。PHP 只处理服务器端代码,并且可以吐出您想要使用的 html 字段,但在页面加载到浏览器后它不能与元素交互。

我无法向您解释如何使用 jQuery,但只能说明现在开始学习它是非常值得的。用它做简单的事情很容易,所以不要被吓倒。

以下是我建议开始的内容:使用此标签加载最新的 jQuery 库:

<script src="http://code.jquery.com/jquery-latest.js"></script>

然后,您将定位适当的按钮并在单击它们时执行某些操作:

$("#boldButtonID").click(function(){
    //get the index of the cursor
    //select the word that the cursor is on by stopping at the space (" ") character in either direction, then insert [b] and [/b] in the appropriate locations.
}

您还可以使用此功能获取选择的文本,我在这里获得:获取突出显示/选定的文本

function getSelectionText() {
var text = "";
if (window.getSelection) {
    text = window.getSelection().toString();
} else if (document.selection && document.selection.type != "Control") {
    text = document.selection.createRange().text;
}
return text;
}

然后您可以使用函数 .before().html("[b]") 和 .after().html("[/b]") 将标签放置在您需要的位置。

我希望这有助于阐明您需要做什么。

干杯!

于 2013-09-26T14:28:03.887 回答