<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
<mce:style type="text/css"><!--
.n{TEXT-DECORATION:none;cursor:pointer} a{color:black} a:hover{color:blue}
.m{TEXT-DECORATION:none;cursor:default} a{color:black}
--></mce:style><style type="text/css" mce_bogus="1"> .n{TEXT-DECORATION:none;cursor:pointer} a{color:black} a:hover{color:blue}
.m{TEXT-DECORATION:none;cursor:default} a{color:black}
</style>
<mce:script type="text/javascript"><!--
var xmlHttp = null;
var index, size = "10";
function $(id) {
return document.getElementById(id);
}
function createXMLHttpRequest() {
if (xmlHttp == null) {
if (window.XMLHttpRequest) {
//Mozilla 浏览器
xmlHt ......
function CreateXmlHttp()
{
if(window.ActiveXObject)
{
try
{
XmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e){};
try
{
XmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e){};
}
else if(window.XMLHttpRequest)
{
try{
XmlHttp=new XMLHttpRequest();
}
catch(e){};
}
else
{
window.alert('请检查你的浏览器!');
}
}
//获取控件的编号
function $(id)
{
return document.getElementById(id)
};
//根据用户所选的区的名称 加载该区所有学校名称
var getSchoolName=function(obj)
{
var drop1=$("DropSchool");
CreateXmlHttp();
var url="GetSchoolInfo.ashx?id="+escape(obj)+"&num="+new Date().getTime();
XmlHttp.open("GET",url,true);
XmlHttp.onreadystatechange=function()
{
if(XmlHttp.readyState==4 &&XmlHttp.status==200)
{
drop1.options.length=0;
// drop1.options.add(new Option("请选择所在学校!"," ......
<
script language=
"javascript"
>
$(
document)
.ready
(
function
(
)
{
$(
'#send_ajax'
)
.click
(
function
(
)
{
var
params=
$(
'input'
)
.serialize
(
)
;
//序列化表单的值
$.ajax
(
{
url:
'ajax_json.php'
,
//后台处理程序
type:
'post'
,
//数据发送方式
dataType:
'json'
,
//接受数据格式
data:
params,
//要传递的数据
success:
update_page //回传函数(这里是函数名)
}
)
;
}
)
;
//$.post()方式:
$(
'#test_post'
)
.click
(
function
(
)
{
$.post
(
'ajax_json.php'
,
{
username:
$(
'#input1'
)
.val
(
)
,
age:
$(
'#input2'
)
.val
(
)
,
sex:
$(
'#input3'
)
.val
(
)
,
job:
$(
'#input4'
)
.val
(
)
}
,
function
(
data)
//回传函数
{
var
myjson=
''
;
eval
(
'myjson='
+
data +
';'
)
;
......
一、问题的产生
搜索结果高亮显示,在新闻标题,来源之类的地方好做,只需要用str.Replace(keyword,"<font style=\"color:red;\"" + keyword +"</font>");这样的方法就可实现。
问题在于,在新闻内容里做搜索。其中html标签里可能含有关键字,用上面这种方法,将会替换掉html标签的部分内容,导致新闻内容不能正常显示。
例如:新闻内容里的图片<img alt="" src="Upload\1.jpg" />,搜索时使用的关键字为oa,则会将新闻内容中这张图片替换为<img alt="" src="Upl<font style="color:red;">oa</font>d\1.jpg" />,这张图片就显示不出来了。
二、实现原理
首先,将新闻内容里的所有html标签读出来,保存起来;
其次,将所有html标签替换为一般不可能出现的字符,如[[1]],[[2]]......[[N]]]等;(搜索的关键字一般不会是[[N]]吧,新闻内容里也一般不会出现这样的字符)
再次,将搜索结果替换为高亮显示状态;
最后,将html标签还原。
三、实现代码
以下代码是网上搜集的,来源不详,在此对作者表示感谢。
public static string Reg(string input, string replace)
&n ......
此教程向你演示如何在你的MVC视图里创建自定义HTML Helper。利用 HTML Helpers, 可以减少乏味的输入HTML标签。
在教程的第一部分,我描述了ASP.NET MVC框架已有的HTML Helper。然后,我描述了创建自定义HTML Helper的两个方法:我会解释如何通过创建静态方法和扩展方法来创建HTML Helper。
理解 HTML Helper
HTML Helper 只是一个返回字符串的方法。这个字符串可以表示你想要的任何内容。例如,你可以使用HTML Helper来呈现标准的HTML标签如 HTML <input> 和 <img> 标签。你还可以用HTML Helper来呈现更多复杂内容比如一个标签页或者一个数据库数据的HTML表格。
ASP.NET MVC 框架包括了以下标准的HTML Helpers (此列表并不完整):
Html.ActionLink()
Html.BeginForm()
Html.CheckBox()
Html.DropDownList()
Html.EndForm()
Html.Hidden()
Html.ListBox()
Html.Password()
Html.RadioButton()
Html.TextArea()
Html.TextBox()
例如, 考虑代码1的表单。此表单由两个标准HTML Helper呈现(见图1)。此表单用 Html.BeginForm() 和Html.TextBox() Helper 方法来呈现一个简单的HTML表单。
图01: 由HTML Helper呈现的页面 (点击查看完 ......
W3C标准的HTML标签
按功能类别排列
DTD:指示在哪种 XHTML 1.0 DTD 中允许该标签。
S=Strict,严格类型, T=Transitional,过渡类型【最普遍】, F=Frameset,框架类型.
标签成对,xhtml是比html更严格,类似XML格式
标签描述DTD
<!DOCTYPE>
定义文档类型。
STF
<html>
定义 HTML 文档。
STF
<body>
定义文档的主体。
STF
<h1> to <h6>
定义 HTML 标题。
STF
<p>
定义段落。
STF
<br>
定义简单的折行。
STF
<hr>
定义水平线。
STF
<!--...-->
定义注释。
STF
文本样式
标签描述DTD
<b>
定义粗体文本。
STF
<font>
不赞成使用。定义文本的字体、尺寸和颜色
TF
<i>
定义斜体文本。
STF
<em>
定义强调文本。
STF
<big>
定义大号文本。
STF
<strong>
定义语气更为强烈的强调文本。
STF
<small>
定义小号文本。
STF
<sup>
定义上标文本。
STF
<sub>
定义下标文本。
STF
<bdo>
定义文本的方向。
STF
<u>
不赞成使用。定义下划线文本。
TF
标签描述DTD
<pre>
定义预格式文本
......
W3C标准的HTML标签
按功能类别排列
DTD:指示在哪种 XHTML 1.0 DTD 中允许该标签。
S=Strict,严格类型, T=Transitional,过渡类型【最普遍】, F=Frameset,框架类型.
标签成对,xhtml是比html更严格,类似XML格式
标签描述DTD
<!DOCTYPE>
定义文档类型。
STF
<html>
定义 HTML 文档。
STF
<body>
定义文档的主体。
STF
<h1> to <h6>
定义 HTML 标题。
STF
<p>
定义段落。
STF
<br>
定义简单的折行。
STF
<hr>
定义水平线。
STF
<!--...-->
定义注释。
STF
文本样式
标签描述DTD
<b>
定义粗体文本。
STF
<font>
不赞成使用。定义文本的字体、尺寸和颜色
TF
<i>
定义斜体文本。
STF
<em>
定义强调文本。
STF
<big>
定义大号文本。
STF
<strong>
定义语气更为强烈的强调文本。
STF
<small>
定义小号文本。
STF
<sup>
定义上标文本。
STF
<sub>
定义下标文本。
STF
<bdo>
定义文本的方向。
STF
<u>
不赞成使用。定义下划线文本。
TF
标签描述DTD
<pre>
定义预格式文本
......