Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 来自外部iframe CRM 2013的期初实体_Javascript_Dynamics Crm 2011_Dynamics Crm 2013 - Fatal编程技术网

Javascript 来自外部iframe CRM 2013的期初实体

Javascript 来自外部iframe CRM 2013的期初实体,javascript,dynamics-crm-2011,dynamics-crm-2013,Javascript,Dynamics Crm 2011,Dynamics Crm 2013,我们有一个CRM 2011解决方案,其中包含几个自定义的基于ASP.NET MVC的视图和表单,这些视图和表单显示在CRM中实体的iFrame中。目前,我们正在对升级到CRM 2013进行一些分析,我们在打开实体窗口时遇到了问题 我们在整个解决方案中主要使用了window.open,包括CRM端的Java脚本和自定义ASP.NET MVC应用程序。传递到window.open的URL格式如下: http://crm.contoso.com/Contoso-Org/main.aspx?etn=op

我们有一个CRM 2011解决方案,其中包含几个自定义的基于ASP.NET MVC的视图和表单,这些视图和表单显示在CRM中实体的iFrame中。目前,我们正在对升级到CRM 2013进行一些分析,我们在打开实体窗口时遇到了问题

我们在整个解决方案中主要使用了
window.open
,包括CRM端的Java脚本和自定义ASP.NET MVC应用程序。传递到
window.open
的URL格式如下:

http://crm.contoso.com/Contoso-Org/main.aspx?etn=opportunity&pagetype=entityrecord&id={...}
问题在于,它似乎记住了在CRM 2013中打开时的上下文,所以它只是重新打开了从中打开的实体。我们在CRM端通过使用
Xrm.Utility.openEntityForm
解决了这个问题,但是对于定制应用程序来说,这似乎是不可能的,因为我们无法从iframe内部访问Xrm库。URL是正确的,如果它是复制粘贴到新选项卡中的,它将正确加载所需的实体。当加载
窗口时,打开
只会重新打开同一实体

一些建议指出,在打开的URL中添加一个由随机生成的数字组成的
histKey
参数。但是,这并不一致——有时它会打开正确的实体,有时它只会重新打开当前实体——也没有正式的文档记录

有人找到了解决方案吗?

请尝试以下方法:

  • 将A标记目标更改为_空白

  • 给窗口一个新名称,即打开(url、新名称、功能)

  • 一种解决方法可能是在MVC应用程序中创建一个IFRAME,并将URL传递回CRM表单,最终打开帐户表单

  • 使用Wscript.Shell ActiveX打开新的IE进程(万不得已)

  • 这个链接可能会有所帮助


  • 我在打开CRM 2013 URL时遇到了类似的问题,通过向URL添加两个查询字符串histKey(以随机数为值)和newWindow来解决问题,如下所示:

    • “histKey=“+Math.floor(Math.random()*10000)
    • “newWindow=true”

    希望这能有所帮助。

    你的问题让我有点困惑。听起来您已经解决了从CRM中加载的问题,但是从MVC中,它不起作用了?如果您正在从外部应用程序打开一个新窗口,“同一实体”是什么?假设我正在查看商机记录。在这里,我们有一个iframe来显示我们的MVC应用程序。MVC应用程序包含一个
    ,该应用程序应开立与Opportunity相关的帐户。
    etn
    参数设置为
    account
    ,GUID指向account实体。但是,当单击URL时,它只会打开与从中打开的相同的Opportunity。因此,它不知何故“记住”了它来自的上下文,即使它是在新选项卡中打开的。CRM似乎附加了一个相同的哈希代码,因此可能存在一些内部状态。