User:Michaelnelson~enwikibooks/monobook.js
Jump to navigation
Jump to search
Note: After saving, changes may not occur immediately. Click here to learn how to bypass your browser's cache.
- Mozilla / Firefox / Safari: hold down Shift while clicking Reload, or press Ctrl-Shift-R (Cmd-Shift-R on Apple Mac);
- Internet Explorer: hold Ctrl while clicking Refresh, or press Ctrl-F5;
- Konqueror: simply click the Reload button, or press F5;
- Opera users may need to completely clear their cache in Tools→Preferences.
Warning: Malicious code can compromise your account. Page preview will cause your web browser to execute this page's content as code under some skins, including Monobook. If you have any questions about any code you plan to add, you can ask at the appropriate reading room. |
The accompanying .css page for this skin can be added at User:Michaelnelson~enwikibooks/monobook.css. |
function formatBookHeading() {
// Grab all the h1 elements within the document
var h1Elements = document.getElementsByTagName('h1');
// We need to check every h1 element in the document:
for (i = 0; i < h1Elements.length; i++)
{
// But we only want to modify the h1 elements that have the
// class of "firstHeading".
if (h1Elements[i].className == "firstHeading")
{
// Then use the / to split the heading into it's parts
var headings = h1Elements[i].innerHTML.split('/');
//
// If there is only one heading (ie, the Book Title), then
// leave it as the h1 element and do nothing. Otherwise
// we want to set the Chapter:Subchapter as the h1 heading,
// and put the book title as a paragraph _before_ the h1
// heading? (Just check this, I think that's what you're after?
//
if (headings.length > 1)
{
// First, create the paragraph that will contain the
// book title, and give it a class so we can style it from CSS.
var bookTitle = document.createElement('p');
bookTitle.setAttribute("class","booktitle");
// Then for the IE bug:
bookTitle.setAttribute("className","booktitle");
// And add the Booktitle text from the original heading
bookTitle.innerHTML=headings[0];
// Next, set the h1 heading to the Chapter title:
h1Elements[i].innerHTML = headings[1];
// Check if there's a third sub heading:
if (headings.length == 3)
{
var subchapter = document.createElement('span');
subchapter.innerHTML = ":" + headings[2];
// and add the subchapter to the h1 heading:
h1Elements[i].appendChild(subchapter);
}
// Finally, add the book title before the h1 heading:
h1Elements[i].parentNode.insertBefore(bookTitle, h1Elements[i]);
// Finally, add the chapter element after the heading.
//h1Elements[i].parentNode.insertBefore(chapter, h1Elements[i].nextSibling);
}
} // end if class=firstHeading
} //end for loop
}
if (window.addEventListener) window.addEventListener("load",formatBookHeading,false);
else if (window.attachEvent) window.attachEvent("onload",formatBookHeading);