Object blijft leeg

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • burrug
  • Registratie: April 2005
  • Laatst online: 14-10-2024
Hallo,

Ik heb een werkelijk schitterende intranetomgeving gemaakt, dacht ik, maar hij werkt alleen niet zo schitterend.
De situatie is nl. zo dat werknemers klantgegevens kunnen bekijken en zodoende deze gegevens kunnen afdrukken. Hier heb ik een javascriptfunctie voor geschreven, waarbij het hoofdscherm 'wegvalt' door hier een <div> met achtergrondkleur icm een lichte transparantie overheen te leggen (soort fade-out). In deze div komt dan weer gecentreerde div waar een <object> wordt geladen.
In de object komt een pagina tevoorschijn met een webpagina, een printversie van de klantgegevens. Deze webpagina heet in de <body> een onload functie staan, nl. window.print(); Hierdoor krijgt de gebruiker dus automatisch een afdrukfunctie.

Dit werkt in mijn testomgeving allemaal geweldig.

Echter de uiteindelijke website (https://intranet.site.nl/index.php?bla=bleh) wordt geladen in een framepagina die zich bevindt op http://www.site.nl/intranet. Dit hebben we zo gedaan, zodat het adres in de adresbalk niet veranderd.

In deze laatste situatie doet het <object> met de afdrukpagina het niet. Deze blijft gewoon wit. Ik heb ook echt geen idee hoe dit nou komt.
De gebruikers werken met IE, dus hier moet ik in principe ook primair in ontwikkelen. Bovenstaande fout komt ook voor in IE8 en in firefox geeft het echter geen probleem.

Is <object> beveiligd o.i.d.?


Mijn javascript-functie;
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<script type="text/JavaScript">
function url_loader_small(link,title) { 

    var titel;
    if (title === undefined) {
        titel = '';
    } else {
        titel = title;
    }
    var url = link;
    document.getElementById('divfader').style.display = 'block'; 
    document.getElementById('centerloader').style.display = 'block'; 
    // definieer de inhoud van de pdfdiv
    loading='<div id="urldiv" style="width:610px;" class="centerinfo">';
    loading=loading+'<object type="text/html" id="page" data="'+url+'" class="object" />';
    loading=loading+'</div>';
    // laad de inhoud in de gecentreerde div
    document.getElementById("centerloader").innerHTML=loading;
    // laat de betreffende div zien
    document.getElementById('urldiv').style.display = 'block'; 
}
</script>

[ Voor 30% gewijzigd door burrug op 19-03-2010 09:59 . Reden: javascript functie ]

Tannoy Revolution R3 105W 6ohm, Marantz PM-7003 2x70W 8ohm, 2x JVG goud/goud, Marantz CD-6003, Marantz ST-6003


Acties:
  • 0 Henk 'm!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Iets heel anders hoor, maar waarom maak je niet een aparte stylesheet voor het media print en voeg je die toe aan de oorspronkelijke pagina waarop werknemers de klantgegevens kunnen zien? Dan kunnen ze die direct afdrukken.

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Je sluit je <object> element niet af ;)
en waarom geen iframe?

[ Voor 23% gewijzigd door crisp op 19-03-2010 10:20 ]

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • burrug
  • Registratie: April 2005
  • Laatst online: 14-10-2024
Omdat ik werk met een soort master-/contentpage systeem en ik alleen wil dat de gebruiker de benodige gegevens in een bepaald format af kan drukken.

Tannoy Revolution R3 105W 6ohm, Marantz PM-7003 2x70W 8ohm, 2x JVG goud/goud, Marantz CD-6003, Marantz ST-6003


Acties:
  • 0 Henk 'm!

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 12:03

RM-rf

1 2 3 4 5 7 6 8 9

volgens mij kun je dit misschien niet met innerHTML als variabele doen (wat nl nogal een 'dirty' manier is de DOM aan te passen), maar zou je het moeten doen met de correctere 'createElement('object')' en 'appendChild' moeten doen

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 10:55

MueR

Admin Tweakers Discord

is niet lief

Gebruik dan het eerder genoemde extra stylesheet met media="print", kan je alles behalve die gegevens middels CSS verbergen. Werkt stukken beter.

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • burrug
  • Registratie: April 2005
  • Laatst online: 14-10-2024
crisp schreef op vrijdag 19 maart 2010 @ 10:19:
Je sluit je <object> element niet af ;)
en waarom geen iframe?
ALs ik object afsluit als </object> dan is het resultaat hetzelfde...

iframe wordt neit meer ondersteunt door xhtml :)

[ Voor 26% gewijzigd door burrug op 19-03-2010 10:26 ]

Tannoy Revolution R3 105W 6ohm, Marantz PM-7003 2x70W 8ohm, 2x JVG goud/goud, Marantz CD-6003, Marantz ST-6003


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 10:55

MueR

Admin Tweakers Discord

is niet lief

Om de in-house guru te quoten:
crisp schreef op vrijdag 12 maart 2010 @ 11:08:
Wie houdt zichzelf tegenwoordig nou nog voor de gek met XHTML? :P
offtopic:
Damn, klik gewoon per ongeluk op close topic :+

[ Voor 12% gewijzigd door MueR op 19-03-2010 10:34 ]

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

burrug schreef op vrijdag 19 maart 2010 @ 10:24:
Als ik object afsluit als </object> dan is het resultaat hetzelfde...
Dan nog hoor je hem wel af te sluiten. Want anders valt de rest van je pagina ook onder dat object en is je pagina niet valid.
burrug schreef op vrijdag 19 maart 2010 @ 10:24:
iframe wordt neit meer ondersteunt door xhtml :)
Euh, weet je dat heel zeker? Ik zie hem gewoon in de DTD staan van Transitional hoor... :)

[ Voor 32% gewijzigd door CH4OS op 19-03-2010 10:43 ]


Acties:
  • 0 Henk 'm!

  • Manuel
  • Registratie: Maart 2008
  • Laatst online: 10:22
Een iFrame wordt nog gewoon ondersteunt, het lijkt mij hoogstens dat die dan undefined in strict is maar als het goed is moet die er zijn in Transitional.

HTML:
1
2
3
4
5
6
7
8
9
<!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>
      <title>M</title>
</head>
<body>
<iframe src="http://www.google.nl"></iframe>
</body>
</html>

Dit bovenstaande voorbeeld valideert gewoon (alleen wel met warnings, maar ben vandaag beetje lui :+)

Acties:
  • 0 Henk 'm!

  • burrug
  • Registratie: April 2005
  • Laatst online: 14-10-2024
Line 7, Column 35: element "iframe" undefined
<iframe src="http://www.google.nl"></iframe>

Maar dan nog.. :)
Als ik nl. een iframepagina laad met een inhoud, waarin in de body tag een window.print(); staat, drukt hij alsnog de gehele webpagina af en niet alleen de inhoud van de iframe.. Dat vind ik ook juist zo raar van iframe en daarom gebruik ik object, omdat het dan ook juist goed gaat :)

Tannoy Revolution R3 105W 6ohm, Marantz PM-7003 2x70W 8ohm, 2x JVG goud/goud, Marantz CD-6003, Marantz ST-6003


Acties:
  • 0 Henk 'm!

  • Manuel
  • Registratie: Maart 2008
  • Laatst online: 10:22
Ik denk dan eerder dat jij hem op strict dtd hebt staan en niet op auto-detect / transitional. ;) Verder vanuit waar roep jij die window.print() aan? Indien het op de hoofdpagina zelf is blijft die iframe voor zover ik weet gewoon wit.

Acties:
  • 0 Henk 'm!

  • burrug
  • Registratie: April 2005
  • Laatst online: 14-10-2024
Nee in de pagina die ik laad in de iframe roep ik de window.print(); aan. Dus je zou verwachten dat dan alleen de iframepagina uit de printer zou komen...

Tannoy Revolution R3 105W 6ohm, Marantz PM-7003 2x70W 8ohm, 2x JVG goud/goud, Marantz CD-6003, Marantz ST-6003


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 10:55

MueR

Admin Tweakers Discord

is niet lief

Waarom probeer je die print stylesheet niet eens?

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • burrug
  • Registratie: April 2005
  • Laatst online: 14-10-2024
Omdat je een print stylesheet moet toepassen op de pagina waar de gebruiker op dat moment is. Dit betekent dat menustructuren etc ook worden uitgeprint. Nu zal je die allemaal wel uit kunnen zonderen, maar ik heb verschillende printversies van verschillende soorten infromatie dus dat is gewoonweg niet handig.

Ik wil gewoon de pagina kunnen laden in een object, maar ik zie nu net in een foutconsole van Google Chrome;

Unsafe JavaScript attempt to access frame with URL http://www.site.nl/intranet/ from frame with URL https://intranet.site.nl/index.php?page=1. Domains, protocols and ports must match

Dus <object> heeft schijnbaar een beveiliging. Echter in Google chrome en Firefox wordt de pagina wel gewoon weergegeven. Heeft iemand ervaring met deze fout en weet iemand met welke instelling deze is te omzeilen?

Tannoy Revolution R3 105W 6ohm, Marantz PM-7003 2x70W 8ohm, 2x JVG goud/goud, Marantz CD-6003, Marantz ST-6003


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 10:55

MueR

Admin Tweakers Discord

is niet lief

Zoekwoord: cross domain scripting

Overigens is een print stylesheet imho vele malen handiger dan eenderwelk alternatief, omdat je met een simpele class op het uit te printen gedeelte diverse weergaven kan maken. En laten we wel wezen, onderstaande is niet heel moeilijk of wel?
Cascading Stylesheet:
1
#header, #menu, #footer { display:none; }

Anyone who gets in between me and my morning coffee should be insecure.

Pagina: 1