今天就做“词条预览”吧。这个我参考了百度百科的“词条预览”功能,大概原理是通过提交一个
target属性是"_blank"的
form,这样会在新窗口中打开目标页,并把数据提交过去。根据这个原理写了如下js代码:
//
Preview
var oPreview, oLemma, oDetail, oTag, oRefer;
function ShowPreview() {
if(!Check(false)) return false;
if(!oPreview){
oPreview = document.createElement("form");
oPreview.action = "../index/Preview.aspx";
oPreview.method = "post";
oPreview.target = "_blank";
document.body.appendChild(oPreview);
}
oLemma = SetInput(oLemma, "lemma", document.getElementById('<%= hfLemma.ClientID %>').value)
oDetail = SetInput(oDetail, "detail", document.getElementById('<%= tbDetail.ClientID %>').value)
oTag = SetInput(oTag, "tag", document.getElementById('<%= tbTag.ClientID %>').value)
oRefer = SetInput(oRefer, "refer", document.getElementById('<%= tbRefer.ClientID %>').value)
oPreview.submit();
}
function SetInput(oInput, sName, sValue) {
if(!oInput){
oInput = document.createElement("input");
oInput.name = sName;
oInput.type = "hidden";
oPreview.appendChild(oInput);
}
oInput.value = sValue;
return oInput;
}
var oPreview, oLemma, oDetail, oTag, oRefer;
function ShowPreview() {
if(!Check(false)) return false;
if(!oPreview){
oPreview = document.createElement("form");
oPreview.action = "../index/Preview.aspx";
oPreview.method = "post";
oPreview.target = "_blank";
document.body.appendChild(oPreview);
}
oLemma = SetInput(oLemma, "lemma", document.getElementById('<%= hfLemma.ClientID %>').value)
oDetail = SetInput(oDetail, "detail", document.getElementById('<%= tbDetail.ClientID %>').value)
oTag = SetInput(oTag, "tag", document.getElementById('<%= tbTag.ClientID %>').value)
oRefer = SetInput(oRefer, "refer", document.getElementById('<%= tbRefer.ClientID %>').value)
oPreview.submit();
}
function SetInput(oInput, sName, sValue) {
if(!oInput){
oInput = document.createElement("input");
oInput.name = sName;
oInput.type = "hidden";
oPreview.appendChild(oInput);
}
oInput.value = sValue;
return oInput;
}
这样就可以在预览页中获取数据,并处理后显示。最后把这个功能放在添加和编辑页就行了。这样预览功能就做好了。
本文转自博客园cloudgamer的博客,原文链接:我来做百科(第二十一天),如需转载请自行联系原博主。