You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1005 B
39 lines
1005 B
"use strict"; |
|
|
|
var memo = {}; |
|
/* istanbul ignore next */ |
|
|
|
function getTarget(target) { |
|
if (typeof memo[target] === "undefined") { |
|
var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself |
|
|
|
if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) { |
|
try { |
|
// This will throw an exception if access to iframe is blocked |
|
// due to cross-origin restrictions |
|
styleTarget = styleTarget.contentDocument.head; |
|
} catch (e) { |
|
// istanbul ignore next |
|
styleTarget = null; |
|
} |
|
} |
|
|
|
memo[target] = styleTarget; |
|
} |
|
|
|
return memo[target]; |
|
} |
|
/* istanbul ignore next */ |
|
|
|
|
|
function insertBySelector(insert, style) { |
|
var target = getTarget(insert); |
|
|
|
if (!target) { |
|
throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid."); |
|
} |
|
|
|
target.appendChild(style); |
|
} |
|
|
|
module.exports = insertBySelector; |