2016-09-15 5 views
0

Во-первых: Я знаю, что вы не должны использовать href javascript: поставить javascript на ссылку. Это плохая практика, и все, что я могу найти на форумах, не использует ее, и вопросы, касающиеся этого, отвергаются. Но я не генерирую html. Это salesforce, который генерирует html, и я полагаю, что они не знают лучше.href javascript: сгенерирована страницей визуальной силы, не работающей в firefox и IE

Теперь это не работает в Firefox и IE. Только в хром. Странно то, что если я попытаюсь написать тот же самый href на тестовой странице html, все три браузера, похоже, с радостью выполнят javascript, следующий за javascript: так что это не то, что не поддерживается всеми браузерами.

Однако с помощью страницы визуальной силы, встроенной в интерфейс молнии, такие ссылки больше не работают. Поэтому мне было интересно, есть ли что-нибудь, что я мог бы исследовать или сделать, чтобы заставить их работать так, чтобы какая-либо общая информация о том, почему такие ссылки не работают или более конкретны, почему salesforce будет делать это для страниц VF в интерфейсе молнии, может мне помочь.

Такие ссылки генерируются с

 <apex:outputLink target="_top" value="{!UpdateLink}">/apex:outputLink> 

и проверить, что такие ссылки не работают, когда встроенный в страницу молнии я вставил следующий фрагмент HTML и в моей странице VF и в пустой HTML-страницы

<script type="text/javascript"> 
     function DebugClick() 
     { 
      alert ('click'); 
      return false; 
     } 

    </script> 

    <a href="javascript:DebugClick();" target="_top">debugger</a> 

На странице html он работает во всех трех браузерах. На странице VF он работает только в хроме.

Я также заставил перерыв в коде и проверил код с помощью javascript, чтобы узнать, были ли изменены атрибут href или onclick ссылки, но они выглядят неповрежденными. Вот моя консоль вывода копии, где я проверил фактическую связь не работает, а не мой тест ссылка

window.getElementByIdCS('j_id0:j_id1:j_id2:updatelinkpnl').childNodes [0].onclick 
    null 
    window.getElementByIdCS('j_id0:j_id1:j_id2:updatelinkpnl').childNodes [0].attributes ['href'] 
    href="javascript:srcUp('https%3A%2F%2Fbvdep.na5.visual.force.com%2Fapex%2FBvDAccountLink%3Faction%3DUpdate%26id%3D0017000001THUbxAAH%26objType%3DAccount%26product%3Dorbisneo%26isdtp%3Dp1');" 

ответ

0

Я, наконец, трещины его (и увидеть больше или меньше, где она исходит от) так вот для тех, кто сталкивается с такой же вопрос, каковы, по-видимому, ключевые факторы. The is in iframe. И цель - _top. Я знаю, что это странная комбинация, но исходный url был простой ссылкой, которая нуждалась в главной цели. Только интерфейс молнии заменил это на использование javascript, но не удаляет верхнюю часть. Очевидно, IE и firefox отказываются выполнять его. Возможно, некоторые заголовки политики безопасности являются частью уравнения, но поскольку я нашел решение (сделать цель = _top зависимой от inteface, мне не нужно было искать дальше

 Смежные вопросы

  • Нет связанных вопросов^_^