尝试在ADF 12c中实现此目的:链接的文本最初为粗体,单击链接后,我希望文本为“正常”。代码:
<af:link ...> <<af:clientListener method="openPdfWindowCallback( ) /> </af:link>
<af:resource type="javascript">function openPdfWindowCallback(){
return function(event) {
<!-- code to open pdf window -->
var inputComponent = event.getSource();
inputComponent.style.fontWeight = 'normal'; }
}</af:resource>
这两行似乎根本不起作用:
var inputComponent = event.getSource();
inputComponent.style.fontWeight = 'normal';
第一行是否完全可以尝试获取链接本身?
谢谢!
答案 0 :(得分:0)
这将在客户端上执行JS代码,但是由于您正在使用链接组件的动作侦听器,因此页面将重定向您。这意味着到服务器的往返行程,它将再次使用服务器上编码的样式提供页面,从而有效地消除了您更新样式的尝试。如果在开发人员工具中选中“保留日志”的情况下运行下面的代码,您将看到该代码可以工作,但会被服务器上的样式覆盖。您必须告诉服务器更改其所服务页面上的样式。
<af:link id="l1" text="Here is a link to click"
inlineStyle="font-weight:bolder; margin-top:20px; margin-left:20px;">
<af:clientListener method="openPdfWindowCallback" type="action"/>
</af:link>
<af:resource type="javascript">
function openPdfWindowCallback(event) {
// code to open pdf window
var inputComponent = event.getSource();
console.log("My input component:", inputComponent);
var elementRefernce = inputComponent.getClientId();
console.log("my refernce:", elementRefernce);
var myLink = document.getElementById(elementRefernce);
console.log("My link:", myLink);
console.log("font weight before:", myLink.style.fontWeight);
myLink.style.fontWeight = 'normal';
console.log("font weight after:", myLink.style.fontWeight);
}
</af:resource>