Dear Telerik,
I am using a RadDock with an iframe in the ContentTemplate, the src attribute of the iframe is set in the template. Once the dock is moved, the content of the iframe is set to the original src. That means that when our users are navigating in the iframe, if they move the docks afterward, they lose the page they were in.
This bug does not seem to be present in IE but can easily be reproduced in FF.
Please, don't tell me to use a RadWindow instead.
Regards.
I am using a RadDock with an iframe in the ContentTemplate, the src attribute of the iframe is set in the template. Once the dock is moved, the content of the iframe is set to the original src. That means that when our users are navigating in the iframe, if they move the docks afterward, they lose the page they were in.
This bug does not seem to be present in IE but can easily be reproduced in FF.
Please, don't tell me to use a RadWindow instead.
Regards.
5 Answers, 1 is accepted
0
Hi Philippe,
This problem is related to FF and it appears when you move an iframe in the DOM. You can easily reproduce it with the code below:
When you move a RadDock, it will be moved in the DOM and the iframe will be reloaded.
For now, we can't provide you a workaround for this issue.
Best wishes,
Petko
the Telerik team
Check out Telerik Trainer, the state of the art learning tool for Telerik products.
This problem is related to FF and it appears when you move an iframe in the DOM. You can easily reproduce it with the code below:
<head id="Head1" runat="server"> |
<title>Untitled Page</title> |
<script type="text/javascript"> |
function MoveIt() |
{ |
$get("div2").appendChild($get("frame1")); |
} |
</script> |
</head> |
<body> |
<form id="form1" runat="server"> |
<asp:scriptmanager id="ScriptManager" runat="server" /> |
<div> |
<input type="button" value="MoveIframe" onclick="MoveIt()" /> |
<div id="div1" style="border:1px solid red; min-height:20px"> |
<iframe src="http://www.google.com" width="490px" height="470px" id="frame1"></iframe> |
</div> |
<div id="div2" style="border:1px solid green; min-height:20px"> |
</div> |
</div> |
</form> |
</body> |
For now, we can't provide you a workaround for this issue.
Best wishes,
Petko
the Telerik team
Check out Telerik Trainer, the state of the art learning tool for Telerik products.
0

Philippe
Top achievements
Rank 1
answered on 19 Nov 2008, 03:38 PM
Hi Petko,
Given the Dock is floating and added to the form element, I am surprised to learn it is moved in the dom. Shouldn't it's top and left style properties be changed when dragged instead of changing the parent node?
Given the Dock is floating and added to the form element, I am surprised to learn it is moved in the dom. Shouldn't it's top and left style properties be changed when dragged instead of changing the parent node?
0

Obi-Wan Kenobi
Top achievements
Rank 1
answered on 21 Nov 2008, 09:42 AM
When the RadDock is docked to a zone, it's position is relative to the parent RadDockZone. Once you start dragging it, position will be absolute and it's top and left style properties will be changed. Once you dock it again, the RadDock position goes relative to the parent RadDockZone.
0

Philippe
Top achievements
Rank 1
answered on 24 Nov 2008, 03:29 PM
Dear Obi-Wan,
Hmm, maybe I didn't make it clear enough in my previous post that the dock had it's DockMode set to DockMode.Floating. Given that's the case, I think it's position should always be set to absolute, moving it in the dom seems like a bug to me.
Hmm, maybe I didn't make it clear enough in my previous post that the dock had it's DockMode set to DockMode.Floating. Given that's the case, I think it's position should always be set to absolute, moving it in the dom seems like a bug to me.
0
Hi Philippe,
The good news are that we managed to isolate and fix the problem with the iframe under Firefox. The fix will appear in next official RadControls for ASP.NET AJAX release. Till then you can use the workaround below:
Keep in mind that if you dock/undock a RadDock to/from a RadDockZone the problem will still exists - this problem is related to firefox and we can't do more about it.
Your telerik points were updated.
Let us know if you face any other problems.
Sincerely yours,
Petio Petkov
the Telerik team
Check out Telerik Trainer, the state of the art learning tool for Telerik products.
The good news are that we managed to isolate and fix the problem with the iframe under Firefox. The fix will appear in next official RadControls for ASP.NET AJAX release. Till then you can use the workaround below:
<%@ register tagprefix="telerik" namespace="Telerik.Web.UI" assembly="Telerik.Web.UI" %> |
<!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 runat="server"> |
<title>Untitled Page</title> |
</head> |
<body> |
<form id="form1" runat="server"> |
<asp:ScriptManager ID="ScriptManager1" runat="server" ></asp:ScriptManager> |
<div> |
<telerik:RadDock ID="RadDock1" runat="server" Title="dock1"> |
<ContentTemplate> |
<iframe src="http://www.google.com" style="width:300px;height:300px"></iframe> |
</ContentTemplate> |
</telerik:RadDock> |
</div> |
<script type="text/javascript"> |
Telerik.Web.UI.RadDock.prototype._startDragDrop = function() |
{ |
var element = this.get_element(); |
this.originalZIndex = element.style.zIndex; |
var bounds = this._getBounds(element); |
var dockBorderBox = this._getBorderBox(element); |
bounds.width -= dockBorderBox.horizontal; |
bounds.height -= dockBorderBox.vertical; |
element.style.width = bounds.width + "px"; |
element.style.zIndex = "9999999"; |
var location = $telerik.getLocation(element); |
//Fix:Firefox: dock with Iframe - causes Iframe reload |
if (element.parentNode != this._form) |
{ |
this._form.appendChild(element); |
} |
var zone = $find(this.get_dockZoneID()); |
if (zone) |
{ |
zone._showPlaceholder(this, location); |
} |
this._setLocation(location); |
}; |
Telerik.Web.UI.RadDock.prototype.undock = function() |
{ |
var element = this.get_element(); |
if (element.parentNode != this._form) |
{ |
this._form.appendChild(element); |
} |
var location = this._getLocation(element); |
this.set_left(location.x); |
this.set_top(location.y); |
var zone = $find(this.get_dockZoneID()); |
if (zone) |
{ |
this.set_dockZoneID(""); |
zone._resetDockIndices(); |
this._unfitWidth(); |
} |
this._setPinUnpinVisibility(); |
this.updateClientState(); |
}; |
</script> |
</form> |
</body> |
</html> |
Keep in mind that if you dock/undock a RadDock to/from a RadDockZone the problem will still exists - this problem is related to firefox and we can't do more about it.
Your telerik points were updated.
Let us know if you face any other problems.
Sincerely yours,
Petio Petkov
the Telerik team
Check out Telerik Trainer, the state of the art learning tool for Telerik products.