【问题标题】:Javascript code ignored in web-resourceWeb 资源中忽略的 Javascript 代码
【发布时间】:2013-04-30 11:02:23
【问题描述】:

我有一个页面要添加为动态 CRM 表单中的网络资源。我在 iframe 之外开发了代码,它在 IE (9+) 和 Firefox 中独立工作,直接导航到资源 URL。 (已编辑)

经过一天的独立开发,现在回到测试 CRM 中嵌入的代码;作为 CRM 表单的一部分加载时,没有任何脚本运行。我已经通过在 javascript 加载的每个阶段添加小警报脚本(如下所示)对此进行了测试,现在这些脚本可以在早至 IE5 的所有浏览器中运行,但在 CRM 表单上的 IFrame 中加载时则不行:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
   <head>        
       <script type="text/javascript">
           alert("1");
       </script>
       <!-- etc.. -->

我还尝试创建一个本地页面以将我的页面加载到 iframe 中,这也可以按预期工作:

<!DOCTYPE html>
<html>
    <head>
        <title>Iframe test</title>
    </head>
    <body style="background: Red;">
        <h1>Hello, World!</h1>
        <iframe width="500" height="500" src="http://server:5555/...">
        </iframe>
    </body>
</html>

因为这个问题只发生在 IFrame 中,所以我已经没有如何调试它的想法了。我最好的猜测是问题是与父页面中的代码冲突,但即便如此我希望我在 html 文件入口点的警报会运行。

我不确定昨天代码在什么时候停止工作并且很遗憾没有备份。我会很感激任何关于为什么脚本会在 IFrame 中被放弃的猜测,关于我可以尝试的任何额外调试步骤的提示......或解决方案 =p。

【问题讨论】:

  • 仅供参考,忘记提及页面内容仍在加载,尽管大部分内容是用 JS 动态编写的......或者应该是!
  • 尝试禁用跨站脚本过滤器,按照本指南https://jobs.missouri.edu/howtos/DisableIE8XSS.pdf
  • @GuidoPreite 不幸的是禁用 xss 并没有解决问题

标签: javascript iframe dynamics-crm-2011 dynamics-crm


【解决方案1】:

在解决问题的表单上关闭了网络资源属性中的“限制跨框架脚本”。

感谢大家的帮助!

【讨论】:

    【解决方案2】:

    您是否尝试将其添加为网络资源而不是 iframe?可能会出现一些 xss 安全性。Web Resource 应该克服它。 Web 资源还具有其他优点(依赖关系感知等)。

    【讨论】:

    • 啊,它已经是一个网络资源了,它没有单独托管在 IIS 中,抱歉我会编辑以包含这个.. 有点脑子放屁。
    • 完全关闭 xss 也不能解决问题。但我也可以在没有此功能(RU13)的 Firefox 中访问页面,我遇到了同样的问题
    猜你喜欢
    • 1970-01-01
    • 2015-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-02
    • 1970-01-01
    相关资源
    最近更新 更多