Toon posts:

IE9 iFrame issue

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een ASP.Net applicatie met een grid en een iFrame. Als een gebruiker een record selecteert wordt de afbeelding getoond in het iFrame. Het iFrame is gekoppeld aan een aspx pagina en de inhoud wordt met een Response.BinaryWrite naar de client geschreven. Elke afbeelding heeft een unieke url, zo kan er gebruik gemaakt worden van de cache op de client. Middels javascript wordt de url doorgegeven aan het iFrame.

Dit werkte perfect, maar sinds IE9 werkt het zetten van de url in het iFrame (javascript) alleen de eerste keer daarna volgt er de melding "Invalid calling object".

Nu begreep ik dat in IE9 het DocType van de pagina gelijk moet zijn aan het DocType van de geladen pagina in het iFrame. Maar door de Response.BinaryWrite verlies ik mijn DocType.

Nu zou ik het iFrame elke keer opnieuw kunnen aanmaken maar dat vind ik ook geen oplossing, maar ik zie ook geen manier op via de code behind een DocType toe te voegen.

Iemand dit probleem al getackeld?

Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Waarom laad je de content niet gewoon in je huidige pagina? (i)Frames zijn echt (bijna) nooit een goede oplossing.

Verder is dit meer clientside, want de bron van de pagina heeft niks met je probleem te maken. Dus deze gaat naar WEB

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Woy schreef op vrijdag 03 juni 2011 @ 11:23:
Waarom laad je de content niet gewoon in je huidige pagina? (i)Frames zijn echt (bijna) nooit een goede oplossing.

Verder is dit meer clientside, want de bron van de pagina heeft niks met je probleem te maken. Dus deze gaat naar WEB
Wij gebruiken het iFrame omdat er nog meer content omheen staat. Als ik een BinaryWrite op de huidige pagina doe dan ben ik ook mijn Grid kwijt. Oke dat is goed.

Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Verwijderd schreef op vrijdag 03 juni 2011 @ 11:32:
[...]


Wij gebruiken het iFrame omdat er nog meer content omheen staat. Als ik een BinaryWrite op de huidige pagina doe dan ben ik ook mijn Grid kwijt. Oke dat is goed.
Hoezo zo je je grid kwijt zijn als je de content gewoon in bijvoorbeeld een div element in je huidige pagina laad?

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Woy schreef op vrijdag 03 juni 2011 @ 12:27:
[...]

Hoezo zo je je grid kwijt zijn als je de content gewoon in bijvoorbeeld een div element in je huidige pagina laad?
Ik kan geen BinaryWrite doen met een pdf in een div tag, dus die optie werkt niet.

Acties:
  • 0 Henk 'm!

  • Shivs
  • Registratie: Januari 2010
  • Niet online
Even voor de record. Je hebt een PDF en die moet ondemand op een bepaalde plek in je pagina worden ingebouwd?
Als dat het geval is kan je volgens mij gewoon met ajax een bestand aanroepen dat je pdf opbouwd en de uitkomst van dat bestand laten terug sturen naar een div?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
JelkeBart schreef op vrijdag 03 juni 2011 @ 13:21:
Even voor de record. Je hebt een PDF en die moet ondemand op een bepaalde plek in je pagina worden ingebouwd?
Als dat het geval is kan je volgens mij gewoon met ajax een bestand aanroepen dat je pdf opbouwd en de uitkomst van dat bestand laten terug sturen naar een div?
Het is een byte array die middels een BinaryWrite in de pagina wordt geschreven geen fysiek bestand. Dan ben ik wel geïnteresseerd hoe dat werkt wil liever ook geen iframe. Het is ook nog het geval dat het ook andere typen van bestanden kan bevatten.

[ Voor 6% gewijzigd door Verwijderd op 03-06-2011 14:26 ]


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Verwijderd schreef op vrijdag 03 juni 2011 @ 14:23:
[...]
Het is een byte array die middels een BinaryWrite in de pagina wordt geschreven geen fysiek bestand.
Alsof de browser er zich wat van aan trekt hoe het bestand gegenereerd word. Uiteindelijk is alles gewoon een stream bytes die binnen komt.

Verder weet ik niet of het mogelijk is om een PDF inline in een pagina te renderen, maar ik vraag me eigenlijk af waarom er dan voor gekozen is om een PDF te genereren in plaats van iets dat wel gewoon makkelijk in een web-pagina getoond kan worden. Bij het tonen van een PDF ben je immers altijd afhankelijk van de PDF reader die de gebruiker geïnstalleerd heeft. Het kan best voorkomen dat de gebruiker helemaal geen PDF reader heeft die inline in de browser kan renderen.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Woy schreef op vrijdag 03 juni 2011 @ 14:47:
[...]

Alsof de browser er zich wat van aan trekt hoe het bestand gegenereerd word. Uiteindelijk is alles gewoon een stream bytes die binnen komt.

Verder weet ik niet of het mogelijk is om een PDF inline in een pagina te renderen, maar ik vraag me eigenlijk af waarom er dan voor gekozen is om een PDF te genereren in plaats van iets dat wel gewoon makkelijk in een web-pagina getoond kan worden. Bij het tonen van een PDF ben je immers altijd afhankelijk van de PDF reader die de gebruiker geïnstalleerd heeft. Het kan best voorkomen dat de gebruiker helemaal geen PDF reader heeft die inline in de browser kan renderen.
Het is ook geen website maar een webapplicatie en de reader hoort daarbij. Eindgebruikers mogen hun eigen reader installeren.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het probleem lijkt opgelost te zijn door de volgende aanpassingen.

1. Middels document.getElementById het Iframe op te halen i.p.v. windows.frames[frameId].
2. De url niet zetten door frame.contentWindow.location maar frame.src.

Helemaal blij.
Pagina: 1