HTML and CSS Reference
In-Depth Information
Notice that I have used the size attribute on the select element so that several
choices are shown at once. This is the Metro convention for select elements that are part of the
main application layout. However, for flyouts, such as the one I created earlier in this chapter, the
convention is a single-line select that opens a drop-down list of options.
Tip
Displaying External Content
The WinJS page feature works only on content that is part of the application. You will generate
an error if you request an external URL using the WinJS.UI.Pages.render method. Instead, you
must use an iframe element if you want to display an external HTML document, but you can
combine this element with the WinJS page feature if you want to get the benefit of breaking your
application down into small and manageable pieces. To demonstrate this, I have created a new
file in the html directory called storeDetail.html . Listing 3-16 shows the contents of this file.
Listing 3-16. The storeDetail.html File
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<div id="noStoreSelectionContainer" class="win-type-x-large">
<p>Select an item on the list</p>
</div>
<div id="storeSelectionContainer">
<iframe id="storeFrame" seamless sandbox=""></iframe>
</div>
</body>
</html>
This is a simple document that acts as a wrapper around the iframe element and a place-
holder element to display when no list item has been selected. The most important element is,
of course, the iframe . he seamless attribute specifies that no border should be drawn around
the iframe , and setting the sandbox attribute to the empty string prevents the embedded con-
tent from running any scripts, navigating to new pages, and submitting forms. I am going to
use the iframe to display the home page of the grocery store associated with the selected item.
These pages contain all sorts of tracking scripts and some very exception-prone code, all of
which I want to spare my user from having to deal with.
Adding the Callback
I am going to use the same approach for defining a callback as I did when loading a fragment.
I have added the callback function to the pages.js file, and you can see the additions in Listing
3-17.
 
 
Search WWH ::




Custom Search