Archief - JS: Popup in IE heeft refresh nodig, Opera/FF niet

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Fraggie

Legacy Member
Om te beginnen, ik net een relatief oud boek uit over JS, dus het kan zijn dat mijn code niet uptodate is.

Wat is de bedoeling van mijn script:
Ik heb een admin selectie gemaakt op mijn site waar gewone users news/headlines kunnen posten. Het probleem is dat er maar een beperkte ruimte is voorzien voor de headlines, en je adhv de input fields niet echt kan zien of je te veel geschreven hebt of niet. Daarom dacht ik, ik maak een popup in JS die het deeltje van de headline html bevat (juiste afmetingen/css).

Het JS script leest eerst alle waarden uit de inputs van headlines.php, en schrijft ze vervolgens naar popup.htm (een leeg bestand).

Waar gaat het mis?
Als ik de popup open in Opera, gaat alles perfect.
Open ik de popup in Firefox dan is de height niet juist ingesteld, maar de html klopt.
Open ik ze vervolgens in IE, dan heb ik een blanko pagina, MAAR de html code dat ik er naar schrijf staat er wel in. Pas als ik de pagina reload verschijnt de tabel.

Geen prob denk je, add gewoon: mywindow.location.reload();

Dan load hij mooi in IE, maar krijg ik mijn CSS er niet door in FF (table zonder opmaak dus) & load Opera headlines.php (waar mijn JS code dus staat).

RIGHT... iemand die een idee heeft?

PHP:
<script language="JavaScript" type="text/JavaScript">
<!--
function preview() {
 var title=document.forms[0].title.value;
 var text=document.forms[0].text.value;
 var email="[email protected]";
 var name=document.forms[0].namelist.value;
 var date="<?php echo $date;?>";

 mywindow = window.open('popup.htm','popup','width=700 height=240');
 mywindow.document.write("<html><head><title>Preview</title><link rel='stylesheet' type='text/css' href='preview.css'></head><body class='space'>" +
 "<table width='683' height='175' border='1' cellpadding='0' cellspacing='20' class='border'><tr><td height='175' valign='top' class='border'>" +
 "<div class='headline'>"+title+"</div><br />" +
 "<pre class='subtxt'>"+text+"</pre>" +
 "<p><a href='mailto:"+email+"?subject=Reactie%20op%20headline:%20"+title+"'>"+name+"</a> "+date+"</p></td></tr>" +
 "</body></html>");
 mywindow.focus();

}
//-->>
</script>

Moest de opmaak niet zo duidelijk zijn: http://img72.imageshack.us/img72/783/js5gj.gif


* Ik merk net dat de mailto url in IE niet werkt (dus geen tekst tussen <a ..></a> vertoont)

Fraggie

Legacy Member
Omdat ik geen idee heb hoe ik dat moet doen. Als je nu op submit duwt, dan verzend hij alles van de forms naar update.php. Als ik dus een extra knop aanmaak, dan moet ik toch een nieuwe form gebruiken? Of een dubble form ofzo, zodat ik met PHP de waarden kan opvragen met $_POST. Maar kweet niet hoe of wat..

Rvl

Legacy Member
Titels zijn soms toch wel belangrijk, en niet in een paar woorden samen te vatten. Ik zou dus gewoon als je titel te lang wordt werken met "dit is een tit..." De drie puntjes dus. Dit kan je gemakkelijk doen door middel van php. kijk maar eens naar http://php.net/strlen en php.net/substr hier kan je een basic scriptje mee maken. Let wel dat je hosting php moet ondersteunen (skynet en telenet ondersteunen dit niet).
Ik veronderstel toch dat je dit bedoelt > titel mag niet te groot zijn en anders inkorten. Als je dit niet bedoelt zou ik deze commentaar gewoon negere;)

Fraggie

Legacy Member
Ik weet wel van mijn eigen dat ik het niet altijd goed uitleg, dus zal ik het nogmaals proberen :p.

Ik heb op de mainpage van men site, een tabel dat uit 2 rijen bestaat. In de eerste rij, met vaste hoogte, staat ofwel een paar foto's als er geen headline is, of een headline, als er een headline is (:noshit:). De gebruikers van mijn website, kunnen zelf de headline aanpassen, maar er is een beperkte plaats, dus als ik bv op letters of woorden ga tellen, dan ga ik alleen maar hun doorlopende tekst kunnen controleren. Ze kunnen nogaltijd 100 enters gebruiken, en daardoor mijn mainpage volledig doen uitrekken.

Daarom maakt ik een preview van hun huidige input, in een apparte popup die als html code, de eerste rij van mijn mainpage bevat. Zo kunnen de gebruikers zien, of ze te veel enters gebruikt hebben, of niet.

Hopelijk was dit iets duidelijker.

Fraggie

Legacy Member
Blijkbaar moet je ook een legepagina eerst clearen en dan pasdan er naar schrijven..

dus gewoon
document.open..
mywindow.document.close();
mywindow.document.open();
mywindow.document.write("..");
mywindow.document.close();

Nu nog een manier vinden, om mijn email juist te kunnen lezen en klaar is kees :).
Ook prob met height opgelost, komma vergeten tussen width & height.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan