我希望有人可以帮助我解决这个问题。我不是一个Javascript程序员,所以我为此而感到困惑。
我目前正在编写一个新的Visualforce页面,以在Salesforce中用于我们的知识库。 VF支持大多数HTML函数(包括Javascript),因此我目前正在使用它来显示/隐藏文本主体的div容器,如下所示:
<button class="tablink orange" onclick="openSection(event,'basics')"><b>Basics</b></button>
<button class="tablink" onclick="openSection(event,'details')"><b>Details</b></button>
<button class="tablink" onclick="openSection(event,'cust')"><b>Customer</b></button>
然后使用下面的脚本显示每个div容器,分别称为“基本”,“详细信息”和“约束”(我从W3获得了此信息)。
function openSection(evt, articleName) {
var i, x, tablinks;
x = document.getElementsByClassName("article");
for (i = 0; i < x.length; i++) {
x[i].style.display = "none";
}
tablinks = document.getElementsByClassName("tablink");
for (i = 0; i < x.length; i++) {
tablinks[i].className = tablinks[i].className.replace(" orange", "");
}
document.getElementById(articleName).style.display = "block";
evt.currentTarget.className += " orange";
}
该位绝对可以正常工作,并且可以满足我的需求。但是,如果本文的“基本”部分包含指向“详细信息” div的超链接,我希望它先切换到“详细信息” div,然后再切换至该部分-这种想法:
<div id="detailslink">
<img alt="/" height="16" src="http://i1.adis.ws/i/washford/bullet" /> <a href="#Turbotrainer">What is a Turbo Trainer?</a><br />.....</div>
我遇到的问题是,知识库以以下方式填充Salesforce中的Rich Text字段,因此我无法对链接进行硬编码,而RTF确实接受一些HTML标签,例如class和id,但不能点击。
我想做的是在页面的开头放置一个onclick指令,该指令会在每个指向其的链接上调用一个类,并在其处于活动状态时被VF页面接受。但是,按如下所示修改代码无效。
document.getElementsById("detailslink")_
.addEventListener("click",openDetails);
function openDetails(event, "details") {
var i, x, tablinks;
x = document.getElementsByClassName("article");
for (i = 0; i < x.length; i++) {
x[i].style.display = "none";
}
tablinks = document.getElementsByClassName("tablink");
for (i = 0; i < x.length; i++) {
tablinks[i].className = tablinks[i].className.replace(" orange", "");
}
document.getElementById("details").style.display = "block";
evt.currentTarget.className += " orange";
}
请问有人可以做些什么吗?