2009-04-28 7 views
2

Assumer une page HTML:Comment augmenter la hauteur de page en pixels X en utilisant uniquement javascript

<html> 
    <body> 
    .. html content (outside of our control) .. 
    .. javascript block .. 
    .. some more html content (outside of our control) .. 
    </body> 
</html> 

On suppose en outre que la seule partie de la page HTML que nous sommes en mesure de contrôler est un bloc javascript le milieu de la page. En utilisant ce bloc javascript, comment augmenter la hauteur totale de la page de 150 pixels en "remplissant" le bas de la page?

Si je pouvais modifier le code HTML d'une solution simple serait:

<html> 
    <body> 
    .. html content (outside of our control) .. 
    .. javascript block .. 
    .. some more html content (outside of our control) .. 
    <div style="height: 150px; clear: both;"></div> 
    </body> 
</html> 

Mais comment puis-je obtenir ce que en utilisant le bloc javascript?

La solution idéale doit être compatible avec tous les navigateurs et 100% en ligne (sans bibliothèque javascript).

Mise à jour # 1: Le bloc javascript a accès à l'intégralité du DOM de la page.

Mise à jour n ° 2: La longueur totale de la page (avant de modifier le DOM) varie.

Mise à jour n ° 3: Supposons qu'aucune bibliothèque javascript (telle que l'excellent jQuery) ne puisse être utilisée.

+0

Est-ce votre javascript va dans un iframe, ou auriez-vous l'accès dom à la page entière? – jacobangel

Répondre

6

Code Mise à jour:

var space = document.createElement('div'); 
space.style.height = "150px"; 
space.style.clear = "both"; 
document.getElementsByTagName("body")[0].appendChild(space); 
+0

Merci - J'ai clarifié la question. S'il vous plaît voir la mise à jour # 2. – knorv

+0

Cela devrait fonctionner quelle que soit la longueur de la page. Je n'ai plus de voix, ou je voterais. J'étais sur le point de poster essentiellement la même chose. – zombat

+0

le code original a seulement produit une hauteur absolue, ceci est la version mise à jour – cobbal

1

Pouvez-vous générer des éléments DOM via javascript et simplement ajouter ce div au fond?

Je voterais pour cobbal Si j'avais tout rep .. heh. .

0

$ ('corps') append ($ ('< div style = "height: 150px; clear: both;" > </div >'));

peut-être

+0

@PaulG pourquoi avez-vous éditer cela? ça ne marche pas avec votre édition. –

+0

Ah désolé John, ressemble à la mise en forme du code ajouté chars d'échappement que je n'ai pas remarqué. Désolé pour ça. En aparté, cette réponse est apparue comme un «poste de mauvaise qualité» dans la section de l'examen, pourrait être utile de l'élargir si possible. – PaulG

Questions connexes