如何在 JDEV 12c 中使用 Javascript 单击时设置 link 的样式

How to set link's style upon clicking using Javascript in JDEV 12c

尝试在 ADF 12c 中实现此目的:link 的文本最初为粗体,单击 link 后,我希望文本为 'normal'。代码:

<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';

尝试获取 link 本身的第一行是否正确?

提前致谢!

这会在客户端执行JS代码,但是因为你使用的是link组件的action listener,所以页面会重定向你。这意味着到服务器的往返行程将再次为页面提供服务器上编码的样式,有效地使您更新样式的尝试无效。如果您 运行 下面的代码 "Preserve log" 在您的开发工具中检查过,您会看到该代码有效但被服务器上的样式覆盖。您必须告诉服务器更改其所服务页面的样式。

        <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>