以下代码的作用是记录最近浏览过的网页,但这里的截取标题是将整个title中的内容截取过来。现在我想截取在字符“ABC”之前的标题内容,请问该如何做呢?
if(navigator.cookieEnabled){//判断是否支持Cookie
var tag = document.getElementById("new");//输出结果DIV id
var N = 10;//太长标题截取汉字字数
var listCount = 10;//记录和显示最近几条
var myTitle = escape(document.title) + "^";//取标题
var myUrl = escape(location.pathname) + "$";//取地址
var expTime = new Date(new Date().setDate(new Date().getDate() + 500));//设定过期时间为500天
var edp = "|; expires=" + expTime.toGMTString() + "; path=/"; //; domain=webcars.com.cn //组合Cookie参数
var allCookie = document.cookie; //取出全部Cookie
if(allCookie.indexOf("news=") != -1 || allCookie.indexOf("$|") != -1){//判断是否为第一次浏览
var myCookieStart = allCookie.indexOf("news=") + "news=".length;
var myCookieEnd = allCookie.indexOf("$|",myCookieStart);
var myCookieall = unescape(allCookie.substring(myCookieStart,myCookieEnd));
var myCookie = myCookieall.split("$");
var myCookieTit = new Array();
var myCookieUrl = new Array();
for(var i = 0; i < myCookie.length; i++){
var myCookieOne = myCookie[i].split("^");
myCookieTit[i] = myCookieOne[0];
myCookieUrl[i] = myCookieOne[1];
}
var tagDat = "";
for(var i =myCookieTit.length - 1; i >= 0; i--){//从先到后顺序取得结果值
var textCount = myCookieTit[i].replace(/[^\x00-\xff]/g,"aa").length;
if(textCount <= N*2){
texts = myCookieTit[i];
}else{
for(var a = N; a < textCount; a++){
texts = myCookieTit[i].substr(0,a);
if(texts.replace(/[^\x00-\xff]/g,"aa").length >= N*2){
texts += "..."
break;
}
}
}
tagDat += "<a href=\"" + myCookieUrl[i] + "\"" + " title=\"" + myCookieTit[i] + "\">" + texts + "</a><br />"
}
tag.innerHTML =tagDat;//输出结果给页面div
var newCookie = "";//************************************************
if(myCookie.length < listCount){
for(i in myCookie){
if(myCookieTit[i] == document.title) continue;//去除重复
newCookie += escape(myCookieTit[i]) + "^" + escape(myCookieUrl[i]) + "$" ;
}
}else{
for(var i = 1; i < listCount; i++){
if(myCookieTit[i] == document.title) continue;
newCookie += escape(myCookieTit[i]) + "^" + escape(myCookieUrl[i]) + "$" ;
}
}
document.cookie = "news=" + newCookie + myTitle + myUrl + edp;//**********
}else{//第一次浏览处理
document.cookie = "news="+ myTitle + myUrl + edp;
//document.cookie = "news="+ myTitle + myUrl + escape("中国 china OK") + "^"+escape("123456")+"$"+escape("神 ooo 仙 456 art ")+"^"+ escape("456")+"$"+escape("weird 万事如意")+"^"+escape("098") +"$"+ edp;
}
}else{//不支持Cookie的处理
tag.innerHTML="您浏览器关闭了cookie功能,不能为您自动保存最近浏览过的网页。"
}
if(navigator.cookieEnabled){//判断是否支持Cookie
var tag = document.getElementById("new");//输出结果DIV id
var N = 10;//太长标题截取汉字字数
var listCount = 10;//记录和显示最近几条
var myTitle = escape(document.title) + "^";//取标题
var myUrl = escape(location.pathname) + "$";//取地址
var expTime = new Date(new Date().setDate(new Date().getDate() + 500));//设定过期时间为500天
var edp = "|; expires=" + expTime.toGMTString() + "; path=/"; //; domain=webcars.com.cn //组合Cookie参数
var allCookie = document.cookie; //取出全部Cookie
if(allCookie.indexOf("news=") != -1 || allCookie.indexOf("$|") != -1){//判断是否为第一次浏览
var myCookieStart = allCookie.indexOf("news=") + "news=".length;
var myCookieEnd = allCookie.indexOf("$|",myCookieStart);
var myCookieall = unescape(allCookie.substring(myCookieStart,myCookieEnd));
var myCookie = myCookieall.split("$");
var myCookieTit = new Array();
var myCookieUrl = new Array();
for(var i = 0; i < myCookie.length; i++){
var myCookieOne = myCookie[i].split("^");
myCookieTit[i] = myCookieOne[0];
myCookieUrl[i] = myCookieOne[1];
}
var tagDat = "";
for(var i =myCookieTit.length - 1; i >= 0; i--){//从先到后顺序取得结果值
var textCount = myCookieTit[i].replace(/[^\x00-\xff]/g,"aa").length;
if(textCount <= N*2){
texts = myCookieTit[i];
}else{
for(var a = N; a < textCount; a++){
texts = myCookieTit[i].substr(0,a);
if(texts.replace(/[^\x00-\xff]/g,"aa").length >= N*2){
texts += "..."
break;
}
}
}
tagDat += "<a href=\"" + myCookieUrl[i] + "\"" + " title=\"" + myCookieTit[i] + "\">" + texts + "</a><br />"
}
tag.innerHTML =tagDat;//输出结果给页面div
var newCookie = "";//************************************************
if(myCookie.length < listCount){
for(i in myCookie){
if(myCookieTit[i] == document.title) continue;//去除重复
newCookie += escape(myCookieTit[i]) + "^" + escape(myCookieUrl[i]) + "$" ;
}
}else{
for(var i = 1; i < listCount; i++){
if(myCookieTit[i] == document.title) continue;
newCookie += escape(myCookieTit[i]) + "^" + escape(myCookieUrl[i]) + "$" ;
}
}
document.cookie = "news=" + newCookie + myTitle + myUrl + edp;//**********
}else{//第一次浏览处理
document.cookie = "news="+ myTitle + myUrl + edp;
//document.cookie = "news="+ myTitle + myUrl + escape("中国 china OK") + "^"+escape("123456")+"$"+escape("神 ooo 仙 456 art ")+"^"+ escape("456")+"$"+escape("weird 万事如意")+"^"+escape("098") +"$"+ edp;
}
}else{//不支持Cookie的处理
tag.innerHTML="您浏览器关闭了cookie功能,不能为您自动保存最近浏览过的网页。"
}
不明白:现在我想截取在字符“ABC”之前的标题内容 ABC是什么?
String.prototype.getLen = function() {
return this.replace(/[^\x00-\xff]/g, '00').length;
}/***/
/* @param len 要截取的字符串最大长度(汉字算两个字符)
/***/
String.prototype.cutStr = function(len) {
var _len = this.getLen();
if(_len <= len) {
return this;
} else {
var _n = 0;
var _subStr = '';
var _cutStr = [];
while(_n < len) {
_subStr = this.charAt(_cutStr.length);
if(/[^\x00-\xff]/.test(_subStr)) {
_n += 2;
} else {
_n += 1;
}
if(_n > len) {
break;
}
_cutStr.push(_subStr);
}
return _cutStr.join('');
}
}document.title.cutStr(20);
var test = "dasdsacABCsacasa";
var first = test.indexOf("ABC");
var ABC_before = test.substring(0,first);
alert(ABC_before )