ThinkGeo.com    |     Documentation    |     Premium Support

Get Pink Screen when using IFrame

We have a web application within which there is a Iframe where I am calling another website. The website that is being displayed within Iframes uses ThinkGeo Web Edition controls and Bing imagery. The site gets displayed within the Iframe fine except that when a user pans the map or performs any action on the map control the tiles go pink.


If the same website is displayed outside of the Iframe everything works great.


How can I get around the issue without opening the page in a seperate window? I want the site to be displayed on the same page. 


Thanks,


GNak



Hi, GNak 
  
 You mentioned another website, do you mean another aspx page or another website which is hosted on the same server with your web app or another remote web server?  
 All of the three scenarios I have tested, it works well.  
  
 I’m not sure whether this problem is caused by cross-domain? I suggest that you give a try for the local aspx page or web server and if it also can’t work, please send us your code so that we could address it quickly. 
  
 Thanks, 
  
 Khalil

We have figured out that the issue is with our scale bar. Our scale bar is contained in a LayerOverlay all on its own. When IE requests the layer's image (via the ThinkGeo.MapSuite.WebEdition.GeoResourceFactory axd), it does not include .png as a valid return type. The simple solution should be to set the LayerOverlay for the scale bar to have a different WebImageFormat, but the only option other than png is jpeg. The issue with using jpeg is that it doesn't support transparency, and so the LayerOverlay containing the scale bar puts a giant black box over everything.


Is there another means of resolving this issue?



Adam, 
  
 Sorry for delay response. 
  
 I don’t what you mean by saying that “Our scale bar is contained in a LayerOverlay”. I guess that you mean the ScaleBarAdornmentLayer or your own ScaleBar layer inherited from ScaleBarAdornmentLayer. Anyway, I have got your problem. There are two options for you: 
 One is that you could use the ScaleLine map tool in WebEdtion product, the code likes below: 
                 Map1.MapTools.ScaleLine.Enabled = true; 
  
 Other one is that you still use ScaleBarAdornmentLayer or your own layer, and LayerOverlay has its own ImageFormat of Png, using like the code below: 
                 ScaleBarAdornmentLayer layer = new ScaleBarAdornmentLayer(); 
                 LayerOverlay overlay = new LayerOverlay(); 
                 overlay.IsBaseOverlay = false; 
                 overlay.TileType = TileType.SingleTile; 
                 overlay.Layers.Add(layer); 
  
 If I misunderstand your meaning please correct me. 
 If you still have any problems about it, please feel free to let me know. 
  
 Thanks, 
  
 Khalil 


We still have the pink tile issue now it can be recreated even without the Iframe. Looks like the pink tiles are caused due to the Overlays that are being added. We are unable to recreate this issue locally in order to debug it but when the code is on the server the issue can be recreated more often.


This issue needs to be fixed and we are unable to find the cause of it.
I have added more information in the attachment with screenshots.

 



Pink_tile_issue.doc (387 KB)

 


GNak,
Please right-click on one tile and copy the image request URL, and then request a single image with the URL copied, it will give the exception list, please send it to us. See the picture below:

Also we also made a sample about it, but unable to recreate it, Can you change the attached sample based on your scenario, and then send it back? That will be helpful to determine the reason.
Thanks,
Johnny

GNak,


Sorry that i missed the sample just now.


Thanks,


Johnney



IframeMap.zip (9.12 KB)

I sent an email with a movie capture of the issue to support@thinkgeo.com. Please let me know if you received it.  


GNak, 
  
 We have got that, and we will focus on that. Thanks for your information about that. 
  
 Thanks, 
  
 Khalil

Hi Johnny,


I am having a similar problem while embedding a map object in the html page with iframe. 


It shows only pink tiles if I don't have the map opened seperately in another tab.


the map and the iframe are on different domains.    I clicked on the pink tile and got the addres url in the window like the above screen shot (10.0.90.2:2178/tile_GeoResource.axd?OVERLAYID=CustomOverlay&FORMAT=image%2Fpng&CACHEID=CustomOverlay&PAGENAME=Default&STYLES=&CLIENTID=Map1&EXTRA=10105702572&SRS=EPSG%3A4326&BBOX=-13702246.304342,6299118.1829215,-13682713.721835,6318650.7654285&WIDTH=256&HEIGHT=256&ZOOM=8), pasted it in the IE browser URl bar and entered. it gave me a blank page.. no error.. 


 


Your help would be much appreciated!


Thank you!


Roson



 


Hi,
Do you deploy the application on IIS? I tried placing the map into html page with IFrame, and publishing the application to different domains, but all works fine. Here as following is the browse URLs:
Map Application: localhost/InframeMap/Map.aspx
Map in IFrame Application: localhost:8080/Default.htm
The IIS looks like:
 
 
The attached is the sample applications that I used for test. Please check it. Can you send you error application to forumsupport@thinkgeo.com ?
Thanks,
Johnny

001_IframeMap.zip (14.5 KB)

Thank you Johnny. 


I have attached the html page where the iframe Map is and the embeded map shows pink tiles if without a map opened seperately in another tab.  I have this html on a different server (different ip) from where the map application is.  


Thanks!


 


Lishan



pinkTiles.html (539 Bytes)

 


Hi Lishan,
Thanks for providing the sample, but I’m unable to connect to your server 10.0.*.*:2178/. I tried publishing two application to two different machine, but all works fine. How about the sample on your machine? Here as following are my deployment steps:
1.       Create “New Application” on IIS7.5, Windows 7 X64.
2.       Make the application navigate to the application folder and the “Application pool” is “DefaultAppPool”.
3.       Change the permission to “Everyone” for test.
Additionally, can you let us know your PC setting or the steps about deployment? Thanks,
Johnny

One more thing, can you let us know your test result with my sample. 
  
 Thanks, 
  
 Johnny

Hi Johnny, 
  
 I do deploy both the Map application and the iframe on IIS.  Map on IIS 6 and iframe on IIS 5.1. 
  
 I published your samples on IIS 5.1.  I got the following message when I tried to access the IframeMap by localhost/IframeMap/Map.aspx  
 "XML Parsing Error: not well-formed 
 Location: localhost/IframeMap/Map.aspx 
 Line Number 1, Column 2:<%@ Page Language=“C#” AutoEventWireup=“true” CodeBehind=“Map.aspx.cs” Inherits=“IframeMap.Map” %> 
 " 
 and I don’t see the option for creating a new application…  for MapInFrame…  =( 
  
 10.0.*.*:2178/ … the server is a node of an intranet… I think it probably can only be accessed within the network… =(  sorry about that… 
  
 for deployment, i just publish the map application to a local folder. copy and paste the folder to the server IIS (wwwroot) where it’s being hosted.  
  
 sorry about my limited info… any more thoughts? 
  
  
 Roson 
  


Hi, Lishan


Thanks for your information about this problem.
We have done many scenarios, such as the iFrame page and the server on the same domain or in the different domain etc.
 
I have attached one sample for visit maps.thinkgeo.com using iFrame, and can you have a test on your local machine? If it also can't work, so I guess there are some configuration problems about your server machine or your client browser, for example, when the security settings of the client browser set to high in IE8 and maybe you can't see anything anymore. So please set the security settings to low and give full Permissions to everyone for the deployment server and the shape file data source you are consuming. 
 
If it also can’t work, please publish your server using one public IP and so we can visit it remotely.
 
Have you done a test on the machine where the map server had deployed? Please tell us the results about it.
 
If you have additional questions, please let us know.
 
Thanks,
 
Khalil

pinkTiles.htm (318 Bytes)

Hi Khalil,


Thank you for your reply.


I tried your attached sample, it worked fine on my machine. (showed everything properly)


I have done a test on the machine where the map server had deployed.  it idid not work either.  It also displayed pink tiles..


I tried to lower my browsers privacy to low and it worked.  (didn't show pink tiles any more.. ) Any thoughts on this?


Is there any other way to solve this problem? cuz it's very undesirable to ask clients to change their browser's settings to make an application work... is it something to do with the Map server configuration (i already set permission to "public website")?  btw, does any of your API use cookies or require information from the client side (projection?..)? 


 


thanks a lot!


 


Roson



Hi, Lishan


If you lower your browsers privacy to low, and can it work as you have expected?
 
I guess this is the limitation for clients’ browser and not for the server.
Also we don’t use cookies or require information from client side in WebEdition product. Only some JavaScript files will be rejected into the page of client.
 
Thanks,
 
Khalil

Hi Kahlil,


Yes. It works as expected if I lower the browsers privacy to low.


I found that there's another way that seems to make it work as expected instead of setting the browsers privacy to low.   that is, add the following line of code in the Default.aspx.cs  .  "It will set P3P (Platform for Privacy Preferences Project) header. It allows the browser (specially Internet Explorer) to through all the third-party cookies (which may be set through iFrame)." - viralpatel.net/blogs/2008/12...frame.html


HttpContext.Current.Response.AddHeader("p3p", "CP=\"IDC DSPCOR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\"");


It works. It seems to be doing something equivalent to setting the broswer privacy to low and it's done behind the scene in the code? What do you think about this?  Thanks!


Roson



Hi, Lishan


Thanks for your feedback about this problem.
We don’t have the environment (such as IE 6) to test it so that I don’t know how it works.
Apparently, it’s a hack for your problem. I also need to state that we don’t use any cookies to store any information in WebEdition product, so that I don’t know what it has fixed. Anyway, it resolves your problem and also I think it won’t cause secure problem if you don’t store any sensitive information on the client-side.
 
Thanks,
 
Khalil