我是Javascript编程的新手,这个人已经清楚地'干净'了我:( ........
以下代码段通过搜索和修改相应的文本节点来突出显示某些文本。文本节点搜索是使用Jquery功能完成的:
window.addEventListener(“load”,highlightSummarySentences,false);
function highlightSummarySentences() {
var docName = thisPage;
var numSentences = getCookie(docName+"Num");
var linkSentenceNum = getCookie(docName + 'LinkingSentence');
for(var i=0; i<numSentences; i++) {
var matchMe = getCookie(docName+i);
try {
if (matchMe && i==(linkSentenceNum)) {
highlightText(matchMe, clickedSentenceColour);
}
else if(matchMe){
highlightText(matchMe, summarySentenceColour);
}
} catch (e) {;
}
}
}
for循环运行一次并突出显示相应的文本,然后退出并且页面变为完全白色。错误控制台中出现以下错误:
错误:未定义getCookie
但我猜它不是getCookie。在上述事件之后,脚本只是拒绝识别任何函数或变量。我不知道可能导致脚本以这种方式运行的原因。我在firefox中开发。
请给我一个提示!如果我应该粘贴更多提供更多信息的代码,请告诉我。
谢谢,
答案 0 :(得分:5)
getCookie()
不是浏览器提供的功能。此代码段可能需要在代码中的某处声明getCookie()
函数。您将使用document.cookie
从浏览器获取cookie字符串,但您必须解析并拆分它以查找所需的数据。这就是你编写的getCookie
函数会为你做的事情。
答案 1 :(得分:3)
您的说明(第一次循环后页面清除)听起来就像您使用某处document.write()
。
如果是:在加载文档后不能使用write(),write()也会覆盖所有内容,js,所以在某处定义的所有函数都不再存在。
答案 2 :(得分:1)
如果您要标记jquery,我建议您执行以下操作:
<script>
$(document).ready(function() {
window.addEventListener("load", highlightSummarySentences , false); });
</script>
答案 3 :(得分:0)
在页面中添加此getCookie()函数
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1);
if(c.indexOf(name) == 0)
return c.substring(name.length,c.length);
}
return "";
}