UMBRACO CMS - 在Windows XP上,创建内容不会重定向到IE6-8上的新内容页面

时间:2012-12-10 18:50:34

标签: umbraco

我今天可能在Umbraco 4.8.1中发现了一个奇怪的问题(这不是早期版本的问题,也没有测试过更新的版本)。

重现的步骤

  1. 在Windows XP上打开Umbraco管理系统使用任何Internet 基于浏览器的浏览器 - 这不是Chrome,Firefox的问题 或Safari
  2. 登录管理系统。
  3. 导航到内容部分。
  4. 点击内容并创建新的内容项目并选择文档类型。
  5. 点击“创建”。
  6. 此时我希望能够看到新创建的项目的仪表板。但实际发生的是创建对话框消失,您仍然在同一个初始仪表板上,树不会更新。如果单击树上的“重新加载节点”,则新节点就在那里 - 您可以单击它,然后获取相同的新内容仪表板。

    使用Windows XP操作系统时,IE6,IE7和IE8会出现此问题。当我使用Windows 7时,这不是问题,这似乎工作正常。

    我用fiddler检查两台机器上的本地流量。在Windows 7版本上,我注意到第二次调用create.aspx?它重新调整了200,然后调用了editContent.aspx等 - 在Windows XP上,第二次调用发生但后续的editContent.aspx永远不会被调用。它似乎确实创建了节点,但随后无法重定向或调用页面。

    有人可以帮忙吗?建议发生什么事?我试过在论坛和谷歌上寻找没有太多帮助?

    请不要回复告诉您的客户不要使用Windows XP。 请不要回复你会在umbraco论坛上有更好的运气 - 我已经在那里发布了:http://our.umbraco.org/forum/using/ui-questions/36841-Create-Content-does-not-redirect-to-new-Content-Page-on-IE6-8-on-Windows-XP

1 个答案:

答案 0 :(得分:0)

经过一番调查后,我找到了造成这种情况的原因。 Umbraco使用一个javascript文件UmbracoClientManager.js和一个名为contentFrame的函数 - 重定向主仪表板框架。

在4.7.1和之前的版本中,重定向周围没有添加setTimeout闭包:

第133行umbraco_client \ Application \ UmbracoClientManager(版本4.8.1 +)

var self = this;
window.setTimeout(function(){
  if (typeof self.mainWindow().right != "undefined") {
    self.mainWindow().right.location.href = strLocation;
  }
  else {
    self.mainWindow().location.href = strLocation; //set the current windows location  
          if the right frame doesn't exist int he current context
  }
},200);

第133行umbraco_client \ Application \ UmbracoClientManager(版本4.7.1) - 上面的代码实际上是

if (typeof this.mainWindow().right != "undefined") {
 this.mainWindow().right.location.href = strLocation;
  }
else {
  this.mainWindow().location.href = strLocation; //set the current windows location if the right frame doesn't exist int he current context
}

因此,如果您重定向到的仪表板页面花费的时间超过200毫秒,那么它将无法显示,并且版本4.8.1或更高版本中的javascript函数将超时

如果您的仪表板耗时超过200毫秒,那么最好的办法就是将其提升到合适的值。

我在此记录:http://issues.umbraco.org/issue/U4-1311