href javascript:由视觉力页面生成,在 Firefox 和 IE 中不工作

href javascript: generated by visual force page not working in firefox and IE

首先:我知道你不应该使用 href javascript: 把 javascript o a link。这是不好的做法,我在论坛上所能找到的就是不要使用它,有关此的问题将被拒绝。但我没有生成 html。产生 html 的是销售人员,我想他们并不了解更多。

现在这在 Firefox 和 IE 中不起作用。仅在 chrome。奇怪的是,如果我尝试在测试 html 页面中编写相同的 href,所有 3 个浏览器似乎都会在 javascript 之后愉快地执行 javascript:所以不是这样所有浏览器都支持。

然而,随着闪电界面中嵌入的视觉力量页面,这样的 links 不再起作用。所以我想知道是否有任何我可以调查或做的事情来使这些工作正常进行,所以关于为什么这样的 links 不起作用的任何一般信息或更具体的为什么 salesforce 会在 lightning 界面中对 VF 页面执行此操作的任何一般信息都可以帮我。

这样的 link 是用

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

为了检查这些 link 在闪电页面中嵌入时是否不起作用,我在我的 VF 页面和空白 html 中插入了以下 html 片段第

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

    </script>

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

在 html 页面中,它适用于所有三种浏览器。在 VF 页面中,它仅适用于 chrome.

我还强行中断了代码,并使用 javascript 检查了代码,以查看 link 的 href 属性或 onclick 是否已更改,但它们看起来完好无损。这是我的控制台输出副本,我在那里检查了实际的 link 不工作,而不是我的测试 link

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

我终于破解了它(并或多或少地看到了它的来源)所以对于遇到类似问题的任何人来说,这似乎是关键因素。 在 iframe 中。目标是_top。我知道这是一个奇怪的组合,但最初的 url 是一个简单的 link,需要最高目标。只是 lightning 接口用 javascript 代替了它,但没有删除顶部。 显然 IE 和 firefox 然后拒绝执行它。可能是某些安全策略 headers 是等式的一部分,但由于我找到了解决方案(使 target=_top 依赖于界面,因此我无需进一步搜索