diff --git a/Auditor/HTMLCSAuditor.js b/Auditor/HTMLCSAuditor.js
index 2006c2ba..ce477faa 100644
--- a/Auditor/HTMLCSAuditor.js
+++ b/Auditor/HTMLCSAuditor.js
@@ -507,9 +507,14 @@ var HTMLCSAuditor = new function()
var wrapper = document.getElementById(_prefix + 'wrapper');
var newWrapper = self.build(_standard, _messages, _options);
- newWrapper.style.left = wrapper.style.left;
- newWrapper.style.top = wrapper.style.top;
- document.body.replaceChild(newWrapper, wrapper);
+
+ if (_options.parentElement) {
+ _options.parentElement.replaceChild(newWrapper, wrapper);
+ } else {
+ newWrapper.style.left = wrapper.style.left;
+ newWrapper.style.top = wrapper.style.top;
+ document.body.replaceChild(newWrapper, wrapper);
+ }
}//end if
};
@@ -813,7 +818,12 @@ var HTMLCSAuditor = new function()
// Build the source view, if outerHTML exists (Firefox >= 11, Webkit, IE),
// and applies to the particular element (ie. document doesn't have it).
- if (message.element.outerHTML) {
+ if (_options.customIssueSource) {
+ var msgElementSource = document.createElement('div');
+ msgElementSource.className = _prefix + 'issue-source';
+ msgDiv.appendChild(msgElementSource);
+ _options.customIssueSource.call(this, id, message, standard, msgElementSource, msgDetailsDiv);
+ } else if (message.element.outerHTML) {
var preText = '';
var postText = '';
@@ -994,6 +1004,19 @@ var HTMLCSAuditor = new function()
};
+ var loadStandards = function(standards, callback) {
+ if (standards.length === 0) {
+ callback.call(this);
+ return;
+ }
+
+ var standard = standards.shift();
+ HTMLCS.loadStandard(standard, function() {
+ loadStandards(standards, callback);
+ });
+
+ };
+
this.build = function(standard, messages, options) {
var wrapper = document.getElementById(_prefix + 'wrapper');
@@ -1068,7 +1091,11 @@ var HTMLCSAuditor = new function()
wrapper.id = _prefix + 'wrapper';
wrapper.className = 'showing-issue-list';
- var header = buildHeaderSection(standard, wrapper);
+ if (_options.noHeader !== true) {
+ var header = buildHeaderSection(standard, wrapper);
+ wrapper.appendChild(header);
+ }
+
var summary = buildSummarySection(errors, warnings, notices);
var summaryDetail = buildDetailSummarySection(1, messages.length);
@@ -1095,7 +1122,6 @@ var HTMLCSAuditor = new function()
innerWrapper.appendChild(issueDetail);
outerWrapper.appendChild(innerWrapper);
- wrapper.appendChild(header);
wrapper.appendChild(summary);
wrapper.appendChild(summaryDetail);
wrapper.appendChild(outerWrapper);
@@ -1108,8 +1134,10 @@ var HTMLCSAuditor = new function()
wrapper.id = _prefix + 'wrapper';
wrapper.className = 'showing-settings';
- var header = buildHeaderSection(_standard, wrapper);
- wrapper.appendChild(header);
+ if (_options.noHeader !== true) {
+ var header = buildHeaderSection(_standard, wrapper);
+ wrapper.appendChild(header);
+ }
var summary = buildSettingsSection();
wrapper.appendChild(summary);
@@ -1133,6 +1161,21 @@ var HTMLCSAuditor = new function()
* @returns undefined
*/
this.run = function(standard, source, options) {
+ var standards = ['WCAG2AAA', 'WCAG2AA', 'WCAG2A'];
+ var standardsToLoad = [];
+ for (var i = 0; i < standards.length; i++) {
+ if (!window['HTMLCS_' + standards[i]]) {
+ standardsToLoad.push(standards[i]);
+ }
+ }
+
+ if (standardsToLoad.length > 0) {
+ loadStandards(standardsToLoad, function() {
+ self.run(standard, source, options);
+ });
+ return;
+ }
+
if ((source === null) || (source === undefined)) {
// If not defined (or no longer existing?), check the document.
source = document;
@@ -1172,12 +1215,21 @@ var HTMLCSAuditor = new function()
// Load the "processing" screen.
var wrapper = self.buildSummaryPage();
wrapper.className += ' processing';
- if (target) {
- wrapper.style.left = target.style.left;
- wrapper.style.top = target.style.top;
- document.body.replaceChild(wrapper, target);
+
+ if (_options.parentElement) {
+ if (target) {
+ _options.parentElement.replaceChild(wrapper, target);
+ } else {
+ _options.parentElement.appendChild(wrapper);
+ }
} else {
- document.body.appendChild(wrapper);
+ if (target) {
+ wrapper.style.left = target.style.left;
+ wrapper.style.top = target.style.top;
+ document.body.replaceChild(wrapper, target);
+ } else {
+ document.body.appendChild(wrapper);
+ }
}
// Process and replace with the issue list when finished.
@@ -1208,13 +1260,23 @@ var HTMLCSAuditor = new function()
setTimeout(function() {
var newWrapper = self.buildSummaryPage();
- newWrapper.style.left = wrapper.style.left;
- newWrapper.style.top = wrapper.style.top;
- document.body.replaceChild(newWrapper, wrapper);
+ if (_options.parentElement) {
+ _options.parentElement.replaceChild(newWrapper, wrapper);
+ } else {
+ newWrapper.style.left = wrapper.style.left;
+ newWrapper.style.top = wrapper.style.top;
+ document.body.replaceChild(newWrapper, wrapper);
+ }
}, 400);
});
};
+ this.pointToElement = function(element) {
+ pointer.container = document.getElementById('HTMLCS-wrapper');
+ pointer.pointTo(element);
+
+ };
+
var pointer =
{
pointer: null,