loadhtml()

Loads HTML content from the specified HTML file. The file may be located inside the template (see Snippets) or hosted on a Content Management System or on another location outside the template.

An optional selector allows you to retrieve only the content of matching elements.

Loadhtml() is cached per batch run (based on the URL) in print/email.
To load a JavaScript file (.js) or a style sheet (.css) you can use loadtext(). See loadtext().
External content is not loaded while editing a script. To test a script that loads external content, you can do a preflight; see Preflight.

loadhtml(location)

Loads all HTML from the specified HTML file.

location

String containing a path that can be absolute or relative to the section/context.
Use snippets/<snippet-name> to retrieve the content from an HTML file residing in the Snippets folder on the Resources panel.
In order to retrieve files from outside the template the file protocol is supported as well as the http/https protocols.
The complete syntax of a fully qualified URL with the "file" protocol is: file://<host>/<path>. If the host is "localhost", it can be omitted, resulting in file:///<path>, for example: file:///c:/somefolder/somecontent.html.
When using the http/https protocol, remember that only absolute paths are supported inside remote snippets (see Remote snippets).

Examples

This script loads a local HTML snippet (from the Resources panel) directly into the matched elements

results.loadhtml("snippets/snippet.html");

The following script loads a local HTML snippet (Resources panel) into a variable. The replaceWith() command is used to replace the element(s) matched by the script's selector with the contents of the snippet.

var mysnippet = loadhtml('snippets/snippet.html'); 
results.replaceWith(mysnippet);

Same result as the previous script, but a different notation:

results.replaceWith(loadhtml('snippets/snippet.html'));

The following script loads a snippet into a variable and finds/replaces text in the variable before inserting the content into the page. The second find command also adds formatting to the replacing text.

var mysnippet = loadhtml('file:///C:/Users/PParker/Documents/Example.html'); 
mysnippet.find('@var1@').text('OL Connect 1');
mysnippet.find('@var2@').html('<i>OL Connect 2</i>').css('text-decoration','underline');
results.replaceWith(mysnippet);

This last script loads a snippet into a variable and retrieves an element from the snippet using query().

var mysnippet = loadhtml('snippets/text-root-wrapped.html'); 
var subject = query("#subject", mysnippet).text();
results.append("<p style='font-weight: bold;'>" + subject + "</p>");

loadhtml(location, selector)

Retrieves specific content from the specified HTML file.

location

String containing a path that can be absolute or relative to the section/context.
Use snippets/<snippet-name> to retrieve the content from an HTML file residing in the Snippets folder on the Resources panel.
In order to retrieve files from outside the template, the file protocol is supported as well as the http/https protocols.
The complete syntax of a fully qualified URL with the "file" protocol is: file://<host>/<path>. If the host is "localhost", it can be omitted, resulting in file:///<path>, for example: file:///c:/somefolder/somecontent.html.
When using the http/https protocol, remember that only absolute paths are supported inside remote snippets (see Remote snippets).

selector

String. The supplied selector should conform to CSS selector syntax and allows you to retrieve only the content of matching elements.

Examples​​

This script loads a specific element from a snippet and uses that to replace the results (the HTML element or set of HTML elements matched by the selector of the script; see results).

var mysnippet = loadhtml('snippets/snippet-selectors.html','#item3'); 
results.replaceWith(mysnippet);

This script loads the children of the selected element.

var snippet = loadhtml('file:///C:/Users/PParker/Documents/Example.html','foobar').children(); 
results.replaceWith(snippet);

The next script loads a remote snippet (see Remote snippets), looks for an H1 heading and uses that text.

var post = loadhtml('snippets/post.rhtml');

var h1 = query('h1', post).text();

results.text(h1);

Another example is given in the following how-to: Using a selector to load part of a snippet.