Hello,

I would have contacted the website's owner, but there's no email on the site.

I'm looking for someone's help on this. By looking at the code below, the link(s) open in a new window, and wanted to know if there's something that can either be added, modified or deleted in order for the links to open in the same browser window, as the way it presently works (code below), is that the links open in a new window, which is not what I do not want it to do. Any help would be appreciated.

Thank you!

Source: http://www.huntingground.freeserve.co.uk/main/mainfram.htm?../imagery/imgscroll3h.htm

<HTML>
<HEAD>
<TITLE>Horizontal Image Scroller 4</TITLE>
 
<script type="text/javascript">

hs4Arr=[

["pic1.jpg","pic1.jpg","Alt Text 1"],
["pic2.jpg","page1.htm","Alt Text 1"],
["pic3.jpg","pic3.jpg","Alt Text 1"],
["pic4.jpg","",""],
["pic5.jpg","",""],
["pic6.jpg","",""],
["pic7.jpg","",""],
["pic8.jpg","",""],
["pic9.jpg","",""],
["pic10.jpg","",""] // no comma at the end of last index

]

dir=0 // 0 = left 1 = right
speed=3
imageSize=100  // % set to zero to use fixedWidth and fixedHeight values
fixedWidth=100 // set a fixed width
fixedHeight=60 // set a fixed height
spacerWidth=20 // space between images

alwaysCenter=1 // center the popup 0 = no 1 = yes
popupLeft=0 // popup default left, use if not centering
popupTop=0 // popup default top, use if not centering

biggest=0
ieBorder=0
totalWidth=0
hs4Timer=null

preload=new Array()
for(var i=0;i<hs4Arr.length;i++){
preload[i]=new Image()
preload[i].src=hs4Arr[i][0]
}

function initHS4(){
scroll1=document.getElementById("scroller1")

for(var j=0;j<hs4Arr.length;j++){

scroll1.innerHTML+='<img id="pic'+j+'" src="'+preload[j].src+'" alt="'+hs4Arr[j][2]+'" title="'+hs4Arr[j][2]+'" onclick="showBigPic('+j+')">'

if(imageSize!=0){ // use percentage size
newWidth=preload[j].width/100*imageSize
newHeight=preload[j].height/100*imageSize
}
else{ // use fixed size
newWidth=fixedWidth
newHeight=fixedHeight
}

document.getElementById("pic"+j).style.width=newWidth+"px"
document.getElementById("pic"+j).style.height=newHeight+"px"

if(document.getElementById("pic"+j).offsetHeight>biggest){
biggest=document.getElementById("pic"+j).offsetHeight
}

document.getElementById("pic"+j).style.marginLeft=spacerWidth+"px"

totalWidth+=document.getElementById("pic"+j).offsetWidth+spacerWidth

}

totalWidth+=1

for(var k=0;k<hs4Arr.length;k++){ // vertically center images
document.getElementById("pic"+k).style.marginBottom = (biggest-document.getElementById("pic"+k).offsetHeight)/2+"px"
}

scrollBox=document.getElementById("scroll_box")

if(document.uniqueID && scrollBox.currentStyle && document.compatMode!="CSS1Compat"){
ieBorder=parseInt(scrollBox.currentStyle.borderWidth)*2
}

if(document.getElementById&&document.all){
ieBorder=parseInt(scrollBox.style.borderTopWidth)*2
}

scrollBox.style.height=biggest+ieBorder+"px"

scroll1.style.width=totalWidth+"px"

scroll2=document.getElementById("scroller2")
scroll2.innerHTML=scroll1.innerHTML
scroll2.style.left= scroll1.offsetWidth+"px"
scroll2.style.top= 0+"px"
scroll2.style.width=totalWidth+"px"

if(dir==1){
speed= -speed
}

scrollHS4()
}


function scrollHS4(){
if(paused==1){return}
clearTimeout(hs4Timer)

scroll1Pos=parseInt(scroll1.style.left)
scroll2Pos=parseInt(scroll2.style.left)

scroll1Pos-=speed
scroll2Pos-=speed

scroll1.style.left=scroll1Pos+"px"
scroll2.style.left=scroll2Pos+"px"

hs4Timer=setTimeout("scrollHS4()",50)

if(dir==0){
if(scroll1Pos< -scroll1.offsetWidth){
scroll1.style.left=scroll1.offsetWidth+"px"
}

if(scroll2Pos< -scroll1.offsetWidth){
scroll2.style.left=scroll1.offsetWidth+"px"
}
}

if(dir==1){
if(scroll1Pos>parseInt(scrollBox.style.width)){
scroll1.style.left=scroll2Pos+ (-scroll1.offsetWidth)+"px"
}

if(scroll2Pos>parseInt(scrollBox.style.width)){
scroll2.style.left=scroll1Pos+ (-scroll2.offsetWidth)+"px"
}
}

}

st=null
function pause(){
clearTimeout(hs4Timer)
clearTimeout(st)
}

function reStartHS4(){
clearTimeout(st)
st=setTimeout("scrollHS4()",100)
}

paused=0
picWin=null

function showBigPic(p){

if(hs4Arr[p][1]!=""){
paused=1

if(picWin&&picWin.open&&!picWin.closed){picWin.close()} // if picWin exists close it

if(hs4Arr[p][1].indexOf("jpg")!=-1){
bigImg=new Image()
bigImg.src=hs4Arr[p][1]

if(alwaysCenter==1){
popupLeft = (screen.availWidth - bigImg.width) / 2
popupTop = (screen.availHeight - bigImg.height) / 2
}

data="\n<center>\n<img src='"+bigImg.src+"'>\n<\/center>\n"

var winProps = "left= "+popupLeft+", top = "+popupTop+", width="+(bigImg.width+20)+", height="+(bigImg.height+20)+", scrollbars=no, toolbar=no, directories=no, menu bar=no, resizable=yes, status=no"

picWin=window.open("","win1",winProps)
picWin.document.write("<HTML>\n<HEAD>\n<TITLE><\/TITLE>\n")
picWin.document.write("<\/HEAD>\n")
picWin.document.write("<BODY style='background-color:black;margin-top:10px;margin-left:10px'>\n")
picWin.document.write("<div id=\"display\">"+data+"<\/div>")
picWin.document.write("\n<\/BODY>\n<\/HTML>")
}
else{
picWin=window.open(hs4Arr[p][1])
}

}

}

window.onfocus=function(){
paused=0
scrollHS4()
}

onunload=function(){ // close the popup when leaving page
if(picWin&&picWin.open&&!picWin.closed){
picWin.close()
}
}

</script>

<style>

#scroller1 img, #scroller2 img{
border:4px solid #7777aa;
}

</style>

</HEAD>
<BODY onload="initHS4()">
<h1>Horizontal Image Scroller 4</h1>

<center>

<DIV id="scroll_box" style="position:relative;width:600px;overflow:hidden;background-color:#ddddee;border:4px solid #bbbbcc;text-align:left" onmouseover="pause()" onmouseout="reStartHS4()">

<div id="scroller1" style="position:absolute;left:0px;top:0px"></div>
<div id="scroller2" style="position:absolute"></div>

</DIV>

</center>

</BODY>
</HTML>

Recommended Answers

All 11 Replies

This is Java forum... Not JavaScript...

Also, the script has window.open which will open a new windows. You could, however, use frame/iframe tag to display the content of link. The down side is that you loose the ability to bookmark the page.

Moving to JavaScript.

Is there another way, instead of using iFrames?

How about using window.location instead of window.open? But that will actually redirect from your current URL.

I replaced both instances of "window.open" with "window.location" and nothing happens. I've alternated, and still nothing.

Another thing, it's not an actual Image that I want to open, it's the LINK itself. If you look at LINE 10: ["pic2.jpg","page1.htm","Alt Text 1"],

the 2nd option lets me open a URL, and that's what I would like to open in the same window.

The window.location may need to be fully qualified URL. The one you are showing is only a page. You could use the window.location.href to get the current location. If the page you want to display is located in the same location where the current viewing page is, replace the last part of it (after the last slash) with the page you want. If it is on otherwise, you may need to recreate it. window.location.hostname will return the domain name of the page you are currently viewing.

the second parameter, 'name' you can reference '_self', to open in same window.
you may want to remove some of the picWin.open&&!picWin.closed code as it is irrelevant at this point.

picWin=window.open("","_self",winProps)
picWin.document.write("<HTML>\n<HEAD>\n<TITLE><\/TITLE>\n")
picWin.document.write("<\/HEAD>\n")
picWin.document.write("<BODY style='background-color:black;margin-top:10px;margin-left:10px'>\n")
picWin.document.write("<div id=\"display\">"+data+"<\/div>")
picWin.document.write("\n<\/BODY>\n<\/HTML>")
}
else{
picWin=window.open(hs4Arr[p][1],'self')

Great, it worked! Thank you very much!

One thing though, you wrote:

picWin=window.open(hs4Arr[p][1],'self')

when I tried that, it was still opening in a new window, I then changed the 'self') to '_self') - typo?

the underscore wasn't there, so might've been a typo. Nonetheless, I'm glad it worked out, and I appreciate it very much!

Cheers!

Bad news though. It works fine in Firefox, but IE7 is giving me the following error:

Line: 110
Char: 1
Error: 'scroll1' is undefined
Code:0

Any idea why?

yes, the second part was a typo, needs to be '_self' sorry about that...
Please mark the thread as solved if you are satisfied with the solution.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.