Как установить стиль ссылки при нажатии, используя Javascript в JDEV 12c - PullRequest
0 голосов
/ 15 октября 2018

Попытка добиться этого в 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';

Правильна ли первая строка, чтобы попытаться получить ссылку вообще?

Заранее спасибо!

1 Ответ

0 голосов
/ 15 октября 2018

Это выполнит код 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>
...