Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

<script> tags not handled correctly if nested in other tags #12

Open
Steffen185 opened this Issue · 1 comment

2 participants

@Steffen185

I've found yet another crappy ad with a script tag that does not exist at the top-level but inside another tag.

Test case:

<!DOCTYPE html>
<html>
<body>

<div id="placeholder"></div>
<script src="/clientscripts/crapLoader.js"></script>
<script>crapLoader.loadScript('./crap-ad.js', 'placeholder');</script>

</body>
</html>

crap-ad.js:

document.write('<div><scr'+'ipt>var x = 1;</scr'+'ipt><span>HTML</span><'+'/div>');

The correct output (without crapLoader) is:

<div><span>HTML</span></div>

With crapLoader the result is:

<div></div><span>HTML</span>

The "split" function works fine (with support.splitWithCapturingParentheses = true):

["<div>", "<script>var x = 1;</script>", "<span>HTML</span></div>"] 

The problem seems to be that later in the function "checkWriteBuffer" the HTML fragments are written to the document independently. I do not yet have an idea how to fix this issue.

[Btw, with support.splitWithCapturingParentheses = false the split does not work correctly, but that's another bug that is independent from this issue here:]

["<script>var x = 1;</script>", "<span>HTML</span></div>"]
@gregersrygg
Owner

This one looks a bit complicated, but I have a few ideas on how to solve it. Thanks for all the details :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.