2011-06-03 59 views
1

我把这个脚本关掉了9lessons.info,当你输入@ simbol的时候它会自动建议朋友。它很棒!但它使用启用了contentbox的div作为文本框,但由于这是一个HTML5功能,但我需要一个更加兼容的解决方案,如文本区域。但是textarea并没有使用当前的jQuery,即使使用与div相同的ID。我不擅长jQuery,所以任何人都可以看到为什么?我如何用文本框替换这个contentbox div?

源代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Facebook like Tag Friends</title> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 



<script type="text/javascript"> 
$(document).ready(function() 
{ 

var start=/@/ig; 
var word=/@(\w+)/ig; 

$("#contentbox").live("keyup",function() 
{ 
var content=$(this).text(); 
var go= content.match(start); 
var name= content.match(word); 
var dataString = 'searchword='+ name; 

if(go.length>0) 
{ 
$("#msgbox").slideDown('show'); 
$("#display").slideUp('show'); 
$("#msgbox").html("Type the name of someone or something..."); 
if(name.length>0) 
{ 
$.ajax({ 
type: "POST", 
url: "boxsearch.php", 
data: dataString, 
cache: false, 
success: function(html) 
{ 
$("#msgbox").hide(); 
$("#display").html(html).show(); 
} 
}); 

} 
} 
return false(); 
}); 

$(".addname").live("click",function() 
{ 
var username=$(this).attr('title'); 
var old=$("#contentbox").html(); 
var content=old.replace(word,""); 
$("#contentbox").html(content); 
var E="<a class='red' contenteditable='false' href='#' >"+username+"</a>"; 
$("#contentbox").append(E); 
$("#display").hide(); 
$("#msgbox").hide(); 
$("#contentbox").focus(); 
}); 

}); 
</script> 

</head> 

<body> 
<h3>Tutorial link <a href="http://9lessons.info">Click Here</a></h3> 
<h2>Eg: 9lessons blog @sri</h2> 
<div id="xxx"></div> 
<div id="container"> 
<div id="contentbox" contenteditable="true"> 
</div> 
<div id='display'> 
</div> 
<div id="msgbox"> 
</div> 
</div> 


</body> 
</html> 
+0

为了什么浏览器,你需要一个更兼容的解决方案?尽管contenteditable作为HTML5规范正在制定中,但其可用于IE6 +,FF3 +,Chrome,Safari和Opera。 – Annie 2011-06-03 01:35:48

+0

你可以花几分钟时间再设置一下你的代码吗?可能删除所有CSS和其他不必要的东西,然后添加一些缩进。我认为如果你能修剪掉一些噪音,人们会更有可能回答。 – ataddeini 2011-06-03 01:36:32

+0

CSS删除了吗?我不知道IE6 +支持它。 – user663049 2011-06-03 02:10:55

回答

0

尝试:

var html = $('#contentbox').html(); 
var textarea = $('<textarea />').attr('id', 'contentbox').html(html); 
$('#contentbox').replaceWith(textarea); 

参见:http://jsfiddle.net/yFKRX/1/