The Web Design Group

... Making the Web accessible to all.

Welcome Guest ( Log In | Register )

> Show 1 div with PREV - NEXT link, hiding all others, Show 1 div with PREV - NEXT link, hiding all others
Baffled in Baltimore
post Jan 9 2009, 05:29 PM
Post #1


Member
***

Group: Members
Posts: 51
Joined: 9-January 09
From: Baltimore, MD
Member No.: 7,507



First, thank you for your patience and please forgive the lengthy blurb. This is a bit complicated, but I am sure there is a fix.

My website is heavily CSS structured for layout and styles for its Side-bar, heading, menu, etc. A modified CSS is used for the content and the content section is now an Iframe where all content is targeted. This was done to prevent duplication of parent. I am using GOOGLE site-map generator for the web and FreeFind for my site. Site consists of hundreds of HTML each consisting of an Image linked to a bigger image, Content, PayPal Links and other content all created with Excel for the code, Nvu for the file-saves and HTMLToolkit for the previews and error checking. When someone clicks an image anywhere on the site, it opens the HTML associated with it giving all the information about the Image. By the way, they are all table-based pages; DUMB, I know.

The Problem:
All these pages require updates or deletions depending on stock and pricing for any given item and frequent crawler checks for broken links afterwards. My site Spiders at roughly 500 pages and it keeps growing and getting out of hand. HELLLLLP!!!!

On a more personal note; the author of the website (that’s me) is loosing his vision and can no-longer keep-up with this maddening effort…

Proposed solution:
I believe that enclosing all images and their associated content in DIVS is the better way to go. The idea is to have all images along with its content on one HTML. There are different categories that would use their own pages but the goal is to remove those hundreds of HTML pages and replace them with maybe a couple of dozen Category pages instead. There are as few as 1 or 2 items to as many as 100 items for any given category that would be shown 1-at-a-time using PREV - NEXT links.

What I would like to accomplish is;
  • Ensure cross-Browser Compatibility.
  • All Category pages and selected DIVS target the content Iframe. (individually-set, CSS or Script file)
  • Open the Catalog page of my site. It opens with the Category Menu in the Side-bar and maybe a promo page in the content Iframe.
  • Select a category from the Side-bar; say Airplanes. Other categories might include Boats, Cars, Trains, etc.
  • The selected “content-targeted” category page opens with a Thumbnail page of all Items on the Page. Each thumbnail is set to say; 150px, 4-wide. (In creating the Category pages, it would be simpler if the Thumbnails are on the same page or separate CSS for each Category.)
  • An Image is selected, targeting the Content Iframe. The Image is now at say; 420px and displays all content along with it, including its Add to Cart Button.
  • At the top of the page are Item and Category hyperlinks. The Item hyperlink opens on mouseover with ‘Prev–Next’, user selects. If Category hyperlink is selected, it returns current Category Thumbnail page for broader view of available selections.
When an item is no longer available, it is deleted from my data-base and the affected page amended to read “Item is no longer available”. This would be done by selecting appropriate “Item Status” in Excel for compilation of the page. If a deleted item is searched for, it will merely show this instead of a broken link associated with a missing webpage.

Whew!!! I told you it was complicated. Any assistance on setting this up (show 1 and hide the rest) is greatly appreciated.

CHEERS

This post has been edited by Baffled in Baltimore: Jan 9 2009, 05:56 PM
User is offlinePM
Go to the top of the page
Toggle Multi-post QuotingQuote Post
 
Reply to this topicStart new topic
Replies
Christian J
post Jan 19 2009, 02:34 PM
Post #2


.
********

Group: WDG Moderators
Posts: 9,678
Joined: 10-August 06
Member No.: 7



Here's a simple demo: http://hem.fyristorg.com/g-force/test/java...pt_SSI/foo.html

I've used both a hidden IFRAME and JS for this. The IFRAME is hidden from human users, but JS should still be able to read the contents of the index page through it (if both pages are on the same domain). If it doesn't work for some reason, browsers should at least be able to use the link to the Home page.

I've tested in latest MSIE, Firefox, Safari and Opera (all in Windows) but try more browsers/versions before using this. There could be some serious bugs, for example I had to fix one that caused an infinite loop in MSIE7 (so I had to close the browser from Windows Task Manager).

All included DIVs will end up at the end of the page by default, but this can be changed to the beginning. You can also position them with CSS.

Installation

1. On the index/home page, add everything that you want included on other pages in separate DIV elements, and give each DIV its own ID. In the future you'll only edit menus on this page.

2. On each page where you want to include things, add the following HTML:

CODE
<iframe onload="include('header','menu1','menu2');"
src="/" width="1" height="1" name="iframe"
style="position: absolute; left: -100px;"></iframe>
<a href="/">Home</a>
<script type="text/javascript" src="include.js"></script>

Both the IFRAME and the "Home" link should point to the index/home page (i.e., "/").

Put the IDs of the DIV elements you want included from the index page in here:

CODE
onload="include('header','menu1','menu2');"

(the example above loads DIVs with the IDs 'header', 'menu1' and 'menu2'). You can add as few or as many as you want, as long as they exist on the index/home page. If one doesn't exist, none will show up.

3. Put the following in the external JS file "include.js":

CODE
var finished;
function include()
{
    if(finished!='yes')
    {
        // first making an array prevents a bug in MSIE:
        var codeblock=new Array();
        for(var i=0; i<include.arguments.length; i++)
        {
            var div_content=top.iframe.document.getElementById(include.arguments[i]).innerHTML;
            codeblock.push('<div id="'+include.arguments[i]+'">'+div_content+'</div>');
        }

        for(var i=0; i<codeblock.length; i++)
        {
            document.body.innerHTML+=codeblock[i];
        }
    }
    finished='yes'; // prevents an infinite loop bug in MSIE
}

User is offlinePM
Go to the top of the page
Toggle Multi-post QuotingQuote Post
Baffled in Baltimore
post Jan 20 2009, 12:43 PM
Post #3


Member
***

Group: Members
Posts: 51
Joined: 9-January 09
From: Baltimore, MD
Member No.: 7,507



QUOTE(Christian J @ Jan 19 2009, 02:34 PM) *

Here's a simple demo: http://hem.fyristorg.com/g-force/test/java...pt_SSI/foo.html

I've used both a hidden IFRAME and JS for this. The IFRAME is hidden from human users, but JS should still be able to read the contents of the index page through it (if both pages are on the same domain). If it doesn't work for some reason, browsers should at least be able to use the link to the Home page.

I've tested in latest MSIE, Firefox, Safari and Opera (all in Windows) but try more browsers/versions before using this. There could be some serious bugs, for example I had to fix one that caused an infinite loop in MSIE7 (so I had to close the browser from Windows Task Manager).

All included DIVs will end up at the end of the page by default, but this can be changed to the beginning. You can also position them with CSS.

Installation

1. On the index/home page, add everything that you want included on other pages in separate DIV elements, and give each DIV its own ID. In the future you'll only edit menus on this page.

2. On each page where you want to include things, add the following HTML:

CODE
<iframe onload="include('header','menu1','menu2');"
src="/" width="1" height="1" name="iframe"
style="position: absolute; left: -100px;"></iframe>
<a href="/">Home</a>
<script type="text/javascript" src="include.js"></script>

Both the IFRAME and the "Home" link should point to the index/home page (i.e., "/").

Put the IDs of the DIV elements you want included from the index page in here:

CODE
onload="include('header','menu1','menu2');"

(the example above loads DIVs with the IDs 'header', 'menu1' and 'menu2'). You can add as few or as many as you want, as long as they exist on the index/home page. If one doesn't exist, none will show up.

3. Put the following in the external JS file "include.js":

CODE
var finished;
function include()
{
    if(finished!='yes')
    {
        // first making an array prevents a bug in MSIE:
        var codeblock=new Array();
        for(var i=0; i<include.arguments.length; i++)
        {
            var div_content=top.iframe.document.getElementById(include.arguments[i]).innerHTML;
            codeblock.push('<div id="'+include.arguments[i]+'">'+div_content+'</div>');
        }

        for(var i=0; i<codeblock.length; i++)
        {
            document.body.innerHTML+=codeblock[i];
        }
    }
    finished='yes'; // prevents an infinite loop bug in MSIE
}



I think we have the right orchard, but the wrong tree; what is proposed here is creating new pages with the variations.
What is needed is; go from THIS page to THIS page (Note the menu in sidebar and Heading; thay are different. The content changes with new menu in sidebar) without creating new pages. Can this be accomplished using this or any other script?

Or did I miss-read the intent of the above script?

PS
MENU AND CONTENT PAGES ARE THEIR OWN HTML PAGES AS WELL; BUT CURRENTLY NOT USED:
(This was done to allow external file targeting from other pages)

This post has been edited by Baffled in Baltimore: Jan 20 2009, 01:32 PM
User is offlinePM
Go to the top of the page
Toggle Multi-post QuotingQuote Post
Christian J
post Jan 20 2009, 04:19 PM
Post #4


.
********

Group: WDG Moderators
Posts: 9,678
Joined: 10-August 06
Member No.: 7



QUOTE(Baffled in Baltimore @ Jan 20 2009, 06:43 PM) *

Or did I miss-read the intent of the above script?

Maybe it's me that misunderstood? unsure.gif

The idea is that you change the include function's parameters (as shown below) depending on what content (headers, menus etc) you want to include on a page. E.g., one page might include "header1" and "menu2":

CODE
onload="include('header1','menu2');"

while another instead uses "header2" and "menu1":

CODE
onload="include('header2','menu1');"

...etc (as long as the included DIVs exist "hard-coded" on the index page).


User is offlinePM
Go to the top of the page
Toggle Multi-post QuotingQuote Post
Baffled in Baltimore
post Jan 22 2009, 09:56 AM
Post #5


Member
***

Group: Members
Posts: 51
Joined: 9-January 09
From: Baltimore, MD
Member No.: 7,507



QUOTE(Christian J @ Jan 20 2009, 04:19 PM) *

QUOTE(Baffled in Baltimore @ Jan 20 2009, 06:43 PM) *

Or did I miss-read the intent of the above script?

Maybe it's me that misunderstood? unsure.gif

The idea is that you change the include function's parameters (as shown below) depending on what content (headers, menus etc) you want to include on a page. E.g., one page might include "header1" and "menu2":

CODE
onload="include('header1','menu2');"

while another instead uses "header2" and "menu1":

CODE
onload="include('header2','menu1');"

...etc (as long as the included DIVs exist "hard-coded" on the index page).


This is a great idea but showing issues:
  • Style sheets in use employ positioning as one of their functions; this would make it difficult to modify for adaptation of proposed theme. (Each new Div id will require its own declaration in the CSS)
  • Menus and search engines in sidebar currently target the "content" iframe and works well using this element. The proposed theme does seem to work with directly-loaded content into their named divs but fails to work with anything targeted from another area of the page; a menu2 link for example, will not target the content div although the div is named /ID'd as content.
  • Menus and other content using external js fail to function properly when loaded into a sheet using this scheme. Don't know why, they just don't see the external js they rely on.
Iframes are great for many things and reasons but poses a problem for html strict; hence the need to discontinue their use. How can a div be sugar-coated to function like an iframe for targeting external content?

This post has been edited by Baffled in Baltimore: Jan 22 2009, 10:45 AM
User is offlinePM
Go to the top of the page
Toggle Multi-post QuotingQuote Post
Christian J
post Jan 22 2009, 03:03 PM
Post #6


.
********

Group: WDG Moderators
Posts: 9,678
Joined: 10-August 06
Member No.: 7



QUOTE(Baffled in Baltimore @ Jan 22 2009, 03:56 PM) *

[*]Style sheets in use employ positioning as one of their functions; this would make it difficult to modify for adaptation of proposed theme. (Each new Div id will require its own declaration in the CSS)

You can also "hard-code" empty DIVs anywhere you want in the product pages where the header and menu content should be inserted. But then you must decide from the beginning on which (and how many) such containers you want to use (and rewrite the script accordingly).

QUOTE
[*]Menus and search engines in sidebar currently target the "content" iframe and works well using this element. The proposed theme does seem to work with directly-loaded content into their named divs but fails to work with anything targeted from another area of the page; a menu2 link for example, will not target the content div although the div is named /ID'd as content.

Didn't understand that. mellow.gif

QUOTE
[*]Menus and other content using external js fail to function properly when loaded into a sheet using this scheme. Don't know why, they just don't see the external js they rely on.

Could you make a test page showing this? One problem I can think of might be that your existing menu scripts are made to work with iframes.

QUOTE
Iframes are great for many things and reasons but poses a problem for html strict;

On the contrary: writing Strict HTML is not an end by itself (writing valid HTML is good, though). The reason for avoiding iframes is the problems they cause, as mentioned earlier.

QUOTE
How can a div be sugar-coated to function like an iframe for targeting external content?

With HTML alone it can't.
User is offlinePM
Go to the top of the page
Toggle Multi-post QuotingQuote Post
Darin McGrew
post Jan 22 2009, 03:32 PM
Post #7


WDG Member
********

Group: Root Admin
Posts: 8,365
Joined: 4-August 06
From: Mountain View, CA
Member No.: 3



QUOTE(Baffled in Baltimore @ Jan 22 2009, 03:56 PM) *
How can a div be sugar-coated to function like an iframe for targeting external content?
QUOTE(Christian J @ Jan 22 2009, 01:03 PM) *
With HTML alone it can't.
And frankly, using JavaScript to make div elements act like iframe elements isn't really any better than just using iframe elements to begin with. In addition to the normal problems associated with frames (inline or regular), you add the dependency on JavaScript.
User is offlinePM
Go to the top of the page
Toggle Multi-post QuotingQuote Post

Posts in this topic
Baffled in Baltimore   Show 1 div with PREV - NEXT link, hiding all others   Jan 9 2009, 05:29 PM
Darin McGrew   Your proposed solution is basically using one big ...   Jan 9 2009, 06:13 PM
Baffled in Baltimore   Thank you for your response I am going blind from ...   Jan 9 2009, 07:51 PM
Darin McGrew   There are JavaScript techniques for hiding some of...   Jan 9 2009, 08:02 PM
Baffled in Baltimore   Greetings Darin: I finally moved my Domain to the...   Feb 13 2009, 08:27 AM
Frederiek   To see a javascript driven sample, go read ALA...   Jan 10 2009, 06:35 AM
Baffled in Baltimore   I am an American Vet, now with a disability. Like...   Jan 10 2009, 11:30 AM
Christian J   Here's a simpler alternative to a database, us...   Jan 10 2009, 11:40 AM
Baffled in Baltimore   Thanks again for your help I appreciate the code ...   Jan 10 2009, 02:23 PM
Christian J   Please consider the following Example for clarifi...   Jan 10 2009, 05:15 PM
Baffled in Baltimore   By the way, a database structure sounds sweet but ...   Jan 10 2009, 03:13 PM
Baffled in Baltimore   Thanks again. Just wanted to make sure I was on t...   Jan 10 2009, 06:02 PM
Christian J   This php is unfamiliar to me, how do I put it to ...   Jan 10 2009, 07:48 PM
Baffled in Baltimore   Hello again; Based on the sample code (php script...   Jan 11 2009, 09:26 AM
Christian J   With an external file you'll need a different ...   Jan 11 2009, 10:43 AM
Baffled in Baltimore   Hello Christian, J Thank you again for all your gr...   Feb 25 2009, 11:16 AM
Baffled in Baltimore   Regarding PHP Addendum What I would like to do i...   Feb 25 2009, 10:17 PM
Christian J   What I would like to do is add an Image gallery t...   Feb 26 2009, 01:30 PM
Baffled in Baltimore   What I would like to do is add an Image gallery ...   Mar 30 2009, 08:34 AM
Baffled in Baltimore   Hello again; and thanks for your patience. I uplo...   Jan 11 2009, 11:27 AM
Christian J   I uploaded recent samples with the following resu...   Jan 11 2009, 03:02 PM
Brian Chandler   Hello again; and thanks for your patience. I upl...   Jan 12 2009, 01:33 AM
Baffled in Baltimore   Thanks for reply Well, I'm paying for this st...   Jan 11 2009, 04:43 PM
Christian J   In the mean time, I need to move back over to the...   Jan 12 2009, 08:17 AM
Baffled in Baltimore   This url produced the previous results; it has a p...   Jan 12 2009, 09:10 AM
Christian J   This url produced the previous results; it has a ...   Jan 12 2009, 10:12 AM
Brian Chandler   On what evidence? That something.php doesn...   Jan 12 2009, 11:02 AM
Baffled in Baltimore   In regards to Thank you for that. I know that j...   Jan 12 2009, 11:07 AM
Baffled in Baltimore   Hello again Christian, J My thanks again to Darin...   Jan 12 2009, 11:26 AM
Baffled in Baltimore   Hello again everyone. This was just received: Yup...   Jan 12 2009, 04:24 PM
Darin McGrew   I can see black on white but not shades of grey on...   Jan 12 2009, 04:50 PM
Brian Chandler   [quote name='Baffled in Baltimore' post='32870' d...   Jan 12 2009, 11:51 PM
Christian J   This url is just 1 of maybe a couple-dozen I plan...   Jan 12 2009, 08:18 PM
Frederiek   For what it's worth, Stu Nicholl's Simple ...   Jan 12 2009, 04:39 PM
Baffled in Baltimore   Hello Fredrick; and thanks. This is similar to so...   Jan 12 2009, 05:02 PM
Baffled in Baltimore   Hello Darin and thanks I can scroll-up the text s...   Jan 12 2009, 05:19 PM
Darin McGrew   I can scroll-up the text size, it is contrast tha...   Jan 12 2009, 06:53 PM
Christian J   I know jscript would be a problem for those brows...   Jan 12 2009, 08:23 PM
Baffled in Baltimore   Thank you for all the responses; some useful info ...   Jan 13 2009, 02:24 PM
Christian J   My server does not support php, so that's out...   Jan 13 2009, 07:10 PM
Darin McGrew   To me, this looks like a specific proposed solutio...   Jan 13 2009, 02:51 PM
Baffled in Baltimore   Thank you No, this was not the intent. The probl...   Jan 13 2009, 03:14 PM
Baffled in Baltimore   Greetings Christian, J And thank you for your gre...   Jan 13 2009, 08:37 PM
Christian J   Actually, this was initially attempted and I sti...   Jan 14 2009, 07:34 AM
Baffled in Baltimore   Hello again Christian, J I was thinking the sam...   Jan 14 2009, 08:53 AM
Christian J   also heading each section with the links or using...   Jan 14 2009, 09:29 AM
Baffled in Baltimore   For clarification; By mouseover menu, I am referr...   Jan 14 2009, 09:16 AM
Baffled in Baltimore   Hello again Christian, J; and thanks It's no...   Jan 14 2009, 11:30 AM
Christian J   I only know how to target when the target name is...   Jan 14 2009, 03:57 PM
Baffled in Baltimore   Hello again Christian, J This script looks a bit u...   Jan 14 2009, 05:23 PM
Christian J   If the script can be run as an external .js, (thi...   Jan 14 2009, 06:59 PM
Baffled in Baltimore   Hello Christian, J OK; thanks. I'll hard-code ...   Jan 14 2009, 09:06 PM
Baffled in Baltimore   Hi ALL... I realize this is off-topic; during a r...   Jan 16 2009, 05:22 PM
Christian J   I was thinking of replacing the iframe scheme on ...   Jan 17 2009, 07:09 AM
Baffled in Baltimore   :huh: I may know-enough about web-design to squeak...   Jan 17 2009, 01:15 PM
Christian J   An iframe was adopted for the "Main Content...   Jan 18 2009, 07:23 AM
Baffled in Baltimore   Without server-side functionality, this was a give...   Jan 18 2009, 11:19 AM
Christian J   At some point, I would like to publish under XHTM...   Jan 18 2009, 01:01 PM
Christian J   Content - Always Header - Mostly Sidebar - 2 or 3...   Jan 19 2009, 08:38 AM
Darin McGrew   I would use a server-side content management syste...   Jan 16 2009, 06:20 PM
Baffled in Baltimore   Hello Darin; and thanks Unfortunately, my server ...   Jan 16 2009, 06:27 PM
Baffled in Baltimore   Hello Darin; and thanks Unfortunately, my server...   Jan 16 2009, 06:40 PM
Darin McGrew   Server-side mechanisms don't rely on browser c...   Jan 17 2009, 07:19 PM
Baffled in Baltimore   Thank you The question was rhetorical I do not ha...   Jan 17 2009, 09:33 PM
Frederiek   Go see Coda-Slider demo. It uses a coda-slider jav...   Jan 18 2009, 05:18 AM
Baffled in Baltimore   Nice! Not exactly what I had in mind but Nice...   Jan 18 2009, 11:27 AM
Christian J   Nice! Not exactly what I had in mind but Nic...   Jan 18 2009, 01:04 PM
Baffled in Baltimore   It's what I had in mind as well.   Jan 18 2009, 01:24 PM
Baffled in Baltimore   OK; thanks. I'll stick with what I have for n...   Jan 18 2009, 01:22 PM
Frederiek   oh well, it was just a suggestion which seemed lik...   Jan 18 2009, 01:28 PM
Baffled in Baltimore   oh well, it was just a suggestion which seemed li...   Jan 18 2009, 04:15 PM
Baffled in Baltimore   Actually, I believe this would be preferred. Tha...   Jan 19 2009, 09:52 AM
Christian J   Here's a simple demo: http://hem.fyristorg.com...   Jan 19 2009, 02:34 PM
Brian Chandler   Here's a simple demo: http://hem.fyristorg.co...   Jan 19 2009, 02:48 PM
Christian J   Hmm, doesn't appear to "work" for m...   Jan 19 2009, 06:20 PM
Baffled in Baltimore   Here's a simple demo: [url=http://hem.fyristo...   Jan 20 2009, 12:43 PM
Christian J   Or did I miss-read the intent of the above script...   Jan 20 2009, 04:19 PM
Baffled in Baltimore   [quote name='Baffled in Baltimore' post='33217' d...   Jan 22 2009, 09:56 AM
Christian J   [*]Style sheets in use employ positioning as one ...   Jan 22 2009, 03:03 PM
Darin McGrew   How can a div be sugar-coated to function like an ...   Jan 22 2009, 03:32 PM
Christian J   And frankly, using JavaScript to make div element...   Jan 22 2009, 06:05 PM
Baffled in Baltimore   Thanks guys: I'll try to do something with al...   Jan 19 2009, 06:23 PM
Christian J   Just an Idea I was toying with; I added a dom im...   Jan 19 2009, 07:20 PM
Baffled in Baltimore   Like here: http://www.wjstewart-associates.com/...   Jan 20 2009, 08:02 AM
Baffled in Baltimore   Gentlemen; hello again. I apologize for the brief ...   Jan 23 2009, 04:02 PM
Baffled in Baltimore   Hello everyone; Other health issues aside, my visi...   Feb 4 2009, 11:48 AM
Darin McGrew   Sorry, but I don't have experience developing ...   Feb 13 2009, 01:25 PM
Baffled in Baltimore   Thanks Darin Actually, I did try shopcms_1_1_0 bu...   Feb 13 2009, 01:55 PM
Darin McGrew   Based on what you've written, to me it sounds ...   Feb 13 2009, 02:25 PM
Baffled in Baltimore   Based on what you've written, to me it sounds...   Feb 13 2009, 07:27 PM
Darin McGrew   You can enforce high contrast by configuring your ...   Feb 13 2009, 07:43 PM
Baffled in Baltimore   Ok, Thanks   Feb 14 2009, 08:49 AM
Baffled in Baltimore   Hello Christian, J Please forgive my lengthy abse...   Mar 26 2009, 01:00 PM
Christian J   Sorry, I've been a bit busy lately (still am)....   Mar 30 2009, 06:20 PM
Baffled in Baltimore   Can't afford it; dissability... It's a sha...   Mar 31 2009, 08:11 AM
Baffled in Baltimore   I recovered a test file here. It is the PHP that ...   Mar 31 2009, 10:56 AM


Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



- Lo-Fi Version Time is now: 1st June 2024 - 01:39 PM