当用户在网页上的任何地方选择文本必须突出显示并且必须将该文本保存为C#中的字符串时,我对保存文本感兴趣。
当同一用户下次看到相同的页面时,必须像他之前所做的那样突出显示文本。 如果有人知道一个简单优雅的方法来做到这一点我会非常感激,但我会在这一点上采取任何解决方案。即使你可以指出我正确的方向,我将不胜感激。
提前致谢。
答案 0 :(得分:0)
您需要在服务器端编写服务WCF或Webservice,它将接收userId和text并将其保存到数据库中。
[WebMethod(Description = "Save Text")]
public string Savetext(int userId ,string text)
{
}
第二种方法将按用户ID
从daatabase中检索文本 [[WebMethod(Description = "Get text")]
public string GetText(int userId)
{}
在客户端使用Ajax调用(Jquery)进行调用
答案 1 :(得分:0)
您可以通过捕获所选文本并通过ajax调用将其发送到您的数据库来实现。 检查此example以了解您是否可以捕获所选文本。
如果您使用jquery
,那么您将使用select()
功能捕获所选文字
<textarea id="txt"></textarea>
<script>
$(document).ready(function(){
$('textarea').select(function()
{
var selectedText=window.getSelection();
//here put the ajax call to your webservice
});
});
</script>
答案 2 :(得分:0)
使用此功能从页面获取所选文字:http://mark.koli.ch/2009/09/use-javascript-and-jquery-to-get-user-selected-text.html
然后在mouseup
事件中将其复制到某些HiddenField
。现在您需要mouseup
中的按钮或AJAX调用,以便将其发送到服务器。在服务器端将其与UserID和页面地址或ID一起保存到DB。
在此用户下次访问此页面时,请检入DB以进行输入。如果存在则将文本放在一些隐藏的字段中。然后使用jQuery获取文本客户端,在页面上找到它(使用正则表达式或其他东西)并选择它。您应该记住在查找可能很棘手的文本时忽略任何HTML标记......
这是我采取的一般方式。