How do I tell if an html string contains content and not just tags
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}
How do I tell if an html string contains content (text, images, video tags, etc) and not just tags (for instance, an empty table, empty divs, spaces, nbsp etc)
I need to be able to do this in javascript, in the browser, and it needs to support IE8. I've come to the conclusion that parsing the html is the best way to go about this. If there is another way that could work I would be interested in that as well. Regex is not acceptable.
Critically, I need this to not run javascript while it is checking. Things like <script>alert(1)</script>
and <img src=x onerror=alert(1)/>
should not alert. This has been the major stopping point for IE8. IE9 has document.implementation.createHTMLDocument, IE 10 and later have DOMParser for html, neither of which will run JS, but I cant find a solution for IE8.
I think the best thing to find would be a javascript based html parser, but all of the ones I have looked at are for Node or do not support IE8.
javascript internet-explorer-8 html-parsing
add a comment |
How do I tell if an html string contains content (text, images, video tags, etc) and not just tags (for instance, an empty table, empty divs, spaces, nbsp etc)
I need to be able to do this in javascript, in the browser, and it needs to support IE8. I've come to the conclusion that parsing the html is the best way to go about this. If there is another way that could work I would be interested in that as well. Regex is not acceptable.
Critically, I need this to not run javascript while it is checking. Things like <script>alert(1)</script>
and <img src=x onerror=alert(1)/>
should not alert. This has been the major stopping point for IE8. IE9 has document.implementation.createHTMLDocument, IE 10 and later have DOMParser for html, neither of which will run JS, but I cant find a solution for IE8.
I think the best thing to find would be a javascript based html parser, but all of the ones I have looked at are for Node or do not support IE8.
javascript internet-explorer-8 html-parsing
add a comment |
How do I tell if an html string contains content (text, images, video tags, etc) and not just tags (for instance, an empty table, empty divs, spaces, nbsp etc)
I need to be able to do this in javascript, in the browser, and it needs to support IE8. I've come to the conclusion that parsing the html is the best way to go about this. If there is another way that could work I would be interested in that as well. Regex is not acceptable.
Critically, I need this to not run javascript while it is checking. Things like <script>alert(1)</script>
and <img src=x onerror=alert(1)/>
should not alert. This has been the major stopping point for IE8. IE9 has document.implementation.createHTMLDocument, IE 10 and later have DOMParser for html, neither of which will run JS, but I cant find a solution for IE8.
I think the best thing to find would be a javascript based html parser, but all of the ones I have looked at are for Node or do not support IE8.
javascript internet-explorer-8 html-parsing
How do I tell if an html string contains content (text, images, video tags, etc) and not just tags (for instance, an empty table, empty divs, spaces, nbsp etc)
I need to be able to do this in javascript, in the browser, and it needs to support IE8. I've come to the conclusion that parsing the html is the best way to go about this. If there is another way that could work I would be interested in that as well. Regex is not acceptable.
Critically, I need this to not run javascript while it is checking. Things like <script>alert(1)</script>
and <img src=x onerror=alert(1)/>
should not alert. This has been the major stopping point for IE8. IE9 has document.implementation.createHTMLDocument, IE 10 and later have DOMParser for html, neither of which will run JS, but I cant find a solution for IE8.
I think the best thing to find would be a javascript based html parser, but all of the ones I have looked at are for Node or do not support IE8.
javascript internet-explorer-8 html-parsing
javascript internet-explorer-8 html-parsing
edited Nov 22 '18 at 13:14
Patrick
asked Nov 22 '18 at 13:10
PatrickPatrick
3971418
3971418
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
You can use this to parse html string in IE8:
var xmlDocument = new ActiveXObject('Microsoft.XMLDOM');
xmlDocument.async = false;
xmlDocument.loadXML(str);
to detect IE
version use this function:
function getInternetExplorerVersion()
// Returns the version of Windows Internet Explorer or a -1
// (indicating the use of another browser).
{
var rv = -1; // Return value assumes failure.
if (navigator.appName == 'Microsoft Internet Explorer')
{
var ua = navigator.userAgent;
var re = new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})");
if (re.exec(ua) != null)
rv = parseFloat( RegExp.$1 );
}
return rv;
}
and usage:
var ver = getInternetExplorerVersion();
if ( ver> -1 )
{
if (ver = 8.0 )
{
var xmlDocument = new ActiveXObject('Microsoft.XMLDOM');
xmlDocument.async = false;
xmlDocument.loadXML(str);
}
}
ah, forgot to mention I've considered this, and our clients that are still running IE8 will have it locked down such that activeX objects will most likely not be allowed. That and we cannot assume that the html we get is going to be valid xml.
– Patrick
Nov 22 '18 at 13:20
Well, In that case, you will have to consider either allowing Per-Site ActiveX Controls or considering not supporting IE8. If these are not optional you'll need to create some sort of genericstring
parser but I wouldn't go that way.
– Alon Adler
Nov 22 '18 at 13:56
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53431770%2fhow-do-i-tell-if-an-html-string-contains-content-and-not-just-tags%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
You can use this to parse html string in IE8:
var xmlDocument = new ActiveXObject('Microsoft.XMLDOM');
xmlDocument.async = false;
xmlDocument.loadXML(str);
to detect IE
version use this function:
function getInternetExplorerVersion()
// Returns the version of Windows Internet Explorer or a -1
// (indicating the use of another browser).
{
var rv = -1; // Return value assumes failure.
if (navigator.appName == 'Microsoft Internet Explorer')
{
var ua = navigator.userAgent;
var re = new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})");
if (re.exec(ua) != null)
rv = parseFloat( RegExp.$1 );
}
return rv;
}
and usage:
var ver = getInternetExplorerVersion();
if ( ver> -1 )
{
if (ver = 8.0 )
{
var xmlDocument = new ActiveXObject('Microsoft.XMLDOM');
xmlDocument.async = false;
xmlDocument.loadXML(str);
}
}
ah, forgot to mention I've considered this, and our clients that are still running IE8 will have it locked down such that activeX objects will most likely not be allowed. That and we cannot assume that the html we get is going to be valid xml.
– Patrick
Nov 22 '18 at 13:20
Well, In that case, you will have to consider either allowing Per-Site ActiveX Controls or considering not supporting IE8. If these are not optional you'll need to create some sort of genericstring
parser but I wouldn't go that way.
– Alon Adler
Nov 22 '18 at 13:56
add a comment |
You can use this to parse html string in IE8:
var xmlDocument = new ActiveXObject('Microsoft.XMLDOM');
xmlDocument.async = false;
xmlDocument.loadXML(str);
to detect IE
version use this function:
function getInternetExplorerVersion()
// Returns the version of Windows Internet Explorer or a -1
// (indicating the use of another browser).
{
var rv = -1; // Return value assumes failure.
if (navigator.appName == 'Microsoft Internet Explorer')
{
var ua = navigator.userAgent;
var re = new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})");
if (re.exec(ua) != null)
rv = parseFloat( RegExp.$1 );
}
return rv;
}
and usage:
var ver = getInternetExplorerVersion();
if ( ver> -1 )
{
if (ver = 8.0 )
{
var xmlDocument = new ActiveXObject('Microsoft.XMLDOM');
xmlDocument.async = false;
xmlDocument.loadXML(str);
}
}
ah, forgot to mention I've considered this, and our clients that are still running IE8 will have it locked down such that activeX objects will most likely not be allowed. That and we cannot assume that the html we get is going to be valid xml.
– Patrick
Nov 22 '18 at 13:20
Well, In that case, you will have to consider either allowing Per-Site ActiveX Controls or considering not supporting IE8. If these are not optional you'll need to create some sort of genericstring
parser but I wouldn't go that way.
– Alon Adler
Nov 22 '18 at 13:56
add a comment |
You can use this to parse html string in IE8:
var xmlDocument = new ActiveXObject('Microsoft.XMLDOM');
xmlDocument.async = false;
xmlDocument.loadXML(str);
to detect IE
version use this function:
function getInternetExplorerVersion()
// Returns the version of Windows Internet Explorer or a -1
// (indicating the use of another browser).
{
var rv = -1; // Return value assumes failure.
if (navigator.appName == 'Microsoft Internet Explorer')
{
var ua = navigator.userAgent;
var re = new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})");
if (re.exec(ua) != null)
rv = parseFloat( RegExp.$1 );
}
return rv;
}
and usage:
var ver = getInternetExplorerVersion();
if ( ver> -1 )
{
if (ver = 8.0 )
{
var xmlDocument = new ActiveXObject('Microsoft.XMLDOM');
xmlDocument.async = false;
xmlDocument.loadXML(str);
}
}
You can use this to parse html string in IE8:
var xmlDocument = new ActiveXObject('Microsoft.XMLDOM');
xmlDocument.async = false;
xmlDocument.loadXML(str);
to detect IE
version use this function:
function getInternetExplorerVersion()
// Returns the version of Windows Internet Explorer or a -1
// (indicating the use of another browser).
{
var rv = -1; // Return value assumes failure.
if (navigator.appName == 'Microsoft Internet Explorer')
{
var ua = navigator.userAgent;
var re = new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})");
if (re.exec(ua) != null)
rv = parseFloat( RegExp.$1 );
}
return rv;
}
and usage:
var ver = getInternetExplorerVersion();
if ( ver> -1 )
{
if (ver = 8.0 )
{
var xmlDocument = new ActiveXObject('Microsoft.XMLDOM');
xmlDocument.async = false;
xmlDocument.loadXML(str);
}
}
edited Nov 22 '18 at 13:20
answered Nov 22 '18 at 13:14
Alon AdlerAlon Adler
2,72542440
2,72542440
ah, forgot to mention I've considered this, and our clients that are still running IE8 will have it locked down such that activeX objects will most likely not be allowed. That and we cannot assume that the html we get is going to be valid xml.
– Patrick
Nov 22 '18 at 13:20
Well, In that case, you will have to consider either allowing Per-Site ActiveX Controls or considering not supporting IE8. If these are not optional you'll need to create some sort of genericstring
parser but I wouldn't go that way.
– Alon Adler
Nov 22 '18 at 13:56
add a comment |
ah, forgot to mention I've considered this, and our clients that are still running IE8 will have it locked down such that activeX objects will most likely not be allowed. That and we cannot assume that the html we get is going to be valid xml.
– Patrick
Nov 22 '18 at 13:20
Well, In that case, you will have to consider either allowing Per-Site ActiveX Controls or considering not supporting IE8. If these are not optional you'll need to create some sort of genericstring
parser but I wouldn't go that way.
– Alon Adler
Nov 22 '18 at 13:56
ah, forgot to mention I've considered this, and our clients that are still running IE8 will have it locked down such that activeX objects will most likely not be allowed. That and we cannot assume that the html we get is going to be valid xml.
– Patrick
Nov 22 '18 at 13:20
ah, forgot to mention I've considered this, and our clients that are still running IE8 will have it locked down such that activeX objects will most likely not be allowed. That and we cannot assume that the html we get is going to be valid xml.
– Patrick
Nov 22 '18 at 13:20
Well, In that case, you will have to consider either allowing Per-Site ActiveX Controls or considering not supporting IE8. If these are not optional you'll need to create some sort of generic
string
parser but I wouldn't go that way.– Alon Adler
Nov 22 '18 at 13:56
Well, In that case, you will have to consider either allowing Per-Site ActiveX Controls or considering not supporting IE8. If these are not optional you'll need to create some sort of generic
string
parser but I wouldn't go that way.– Alon Adler
Nov 22 '18 at 13:56
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53431770%2fhow-do-i-tell-if-an-html-string-contains-content-and-not-just-tags%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown