View Full Version : Javascript/Flash error

11-16-2010, 11:36 AM
I'm currently working on a Flash pop-up that can be integrated in several websites. I'm currently testing the code. I've got a flash file with a semi-transparant background that loads over the complete page, it also closes the div with the flash content once the end of the swf is reached.

The thing is, I want to prevent the user from scrolling whilst the swf is active. That's why I disabled the overflow-Y.

Now I've got a javascript code that is supposed to change the body's overflow to visible again, and I'm calling to this code in the same frame as where I disable the div with the flash in it.

But for some reason it isn't working.

This is my complete Javascript code:

<script type="text/javascript">
<!-- Original: Gregor (legreg@legreg.de) -->
<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->

var ie4 = (document.all) ? true : false;
var ns4 = (document.layers) ? true : false;
var ns6 = (document.getElementById && !document.all) ? true : false;

function hidelayer(lay) {
if (ie4) {document.all[lay].style.visibility = "hidden";}
if (ns4) {document.layers[lay].visibility = "hide";}
if (ns6) {document.getElementById([lay]).style.display = "none";}

function writetolayer(lay,txt) {
if (ie4) {
document.all[lay].innerHTML = txt;
if (ns4) {
if (ns6) {
over = document.getElementById([lay]);
range = document.createRange();
domfrag = range.createContextualFragment(txt);

while (over.hasChildNodes()) {

<!-- This is the part I added which I thought would show the scrollbar again after the flashpopup is finished -->
function showbar(){
document.getElementsByName('body')[0].style.overflowY = 'visible';


And in the final frame of my flash animation I first stop the swf, and then call to both functions:

//stops the movie

//this is the code that triggers the function to hide the div, and the function that should show the scrollbar


I've also got an online webtest here:

And I've included all the files in a zip

Can anyone tell me what I'm doing wrong?

Philip M
11-16-2010, 12:09 PM
That code is absurdly antique and utterly obsolete. IE4 and NS4 have long been one with Nineveh and Tyre. :D


document.getElementsByName('body')[0].style.visibility = 'visible';

All advice is supplied packaged by intellectual weight, and not by volume. Contents may settle slightly in transit.

11-16-2010, 12:40 PM
I want the body to be visible, I only want to hide the scroll bar, that's why I need to use


to hide the scrollbar.

And the code is antique indeed, but I'm rather crappy at javascript and this worked, so I figured, no need to change it right? =)

Philip M
11-16-2010, 01:39 PM
Try this (use buttons to test):-

<input type = "button" value = "Hide Scrollbar" onclick = "hideBar()"><br>
<input type = "button" value = "Restore Scrollbar" onclick = "showBar()"><br><br>

<script type = "text/javascript">
for (var i = 1; i<=40; i++) {
document.write("TEXT LINE " + i + "<br>");

<script type = "text/javascript">

function hideBar() {
if (document.all) {document.body.scroll = "no"}
else {
var oTop = document.body.scrollTop;
document.body.style.overflow = "hidden";
document.body.scrollTop = oTop;

function showBar(){
document.body.scroll = "";
document.body.style.overflow = "";


11-16-2010, 07:53 PM
well that works, but only if I don't put the overflow to hidden in the css =(.

So now I've got the correct code but I don't know how to make it work for my situation =(.

Do you think it would work if I'd put the body overflow to hidden with CSS?

Don't know how yet though.