This morning I turned on my laptop intending to quickly fill up my timesheet for the week and bugger off. However, my nerdiness toke over. I decided to improve on my work cheatsheet HTML file.
My cheatsheet is simply a static HTML file that I use as my default web page of my web browser. In the cheatsheet I put all the useful and frequently used links and information. I recently rewrote it using Javascript to dynamically update the URLs depending on whether I am on the company VPN or not. So now I have two versions of it - the new one with Javascript; and the old one in pure HTML, which has way more info than the new one. I am too lazy to migrate everything to the new one so I decided to somehow include it instead.
Since the cheatsheet is a static HTML file only, there is no web server where I can utilise the web container for including another file - e.g. the
With this constraint, I can think of basically the following approaches:
1. use
Among the above methods, my preference would be
My cheatsheet is simply a static HTML file that I use as my default web page of my web browser. In the cheatsheet I put all the useful and frequently used links and information. I recently rewrote it using Javascript to dynamically update the URLs depending on whether I am on the company VPN or not. So now I have two versions of it - the new one with Javascript; and the old one in pure HTML, which has way more info than the new one. I am too lazy to migrate everything to the new one so I decided to somehow include it instead.
Since the cheatsheet is a static HTML file only, there is no web server where I can utilise the web container for including another file - e.g. the
include
tag in ASP/JSP or Apache web server's SSI feature... I can only rely on native HTML or Javascript.
With this constraint, I can think of basically the following approaches:
1. use
iframe
and this is tried and true, and simple enough to use:<iframe src='index.htm' style="height:100%; width=100%" />2. use
XMLHttpRequest
and set the xhr.responeType
to "document"
:
if (window.XMLHttpRequest) xhr = new XMLHttpRequest(); else xhr = new ActiveXObject("Microsoft.XMLHTTP"); xhr.open("GET", "file://c:/work/index.htm", true); xhr.responseType="document"; xhr.onload=function(e){ var doc=e.target.response; var container=document.body; container.appendChild(doc.querySelector('.h')); } xhr.send();3. use HTML5's import feature:
if('import' in document.createElement('link')) { var link=document.createElement('link'); link.rel="import"; link.href="index.htm"; link.onload=function(e) { var doc=link.import.querySelector('.h'); document.body.appendChild(doc.cloneNode(true)); }; document.head.appendChild(link); }
Among the above methods, my preference would be
HTML5
, XHR
and iframe
, in that order. Unfortunately, XHR
and HTML5 import
don't allow file://
to be accessed for security reasons. So the only option left is iframe
and it works well.
No comments:
Post a Comment