Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(compiler): support decode all HTML entities in the value of prop and attribute (fix #8895) #11599

Open
wants to merge 1 commit into
base: dev
Choose a base branch
from

Conversation

JuniorTour
Copy link
Contributor

@JuniorTour JuniorTour commented Aug 16, 2020

Profit:

  1. Close Non-breaking space acts different than other characters - outputs " " in template when passed via props #8895, HTML entities in attributes are not always decoded for string templates #8805, entities in attribute are unexpectedly encoded #10121 and many issues about decoding HTML entities.
  2. Go a step further to decode all the HTML entities in the value of prop and attribute. Ensuring consistent behavior between Vue.js and browser. Solving the HTML entities decode issue once and for all.
  3. Optimizing the particular logic of fixing :style with multiline attribute removes root element in all versions of IE #3663 and Unicode added in HREF / SRC link (only on Chrome) #6828, simplify the code, improve the robustness.

DEMO:

Before Fix After Fix
Reproduction Link https://jsfiddle.net/juniortour/op1L4z3s/ https://jsfiddle.net/juniortour/qg9pwz7v/
Screenshot A06J9%`ECX6R${Q{0GI7IU8 (V~30B(4I%%$K%F4Z4BEW)4

What kind of change does this PR introduce? (check at least one)

  • Bugfix
  • Feature
  • Code style update
  • Refactor
  • Build-related changes
  • Other, please describe:

Does this PR introduce a breaking change? (check one)

  • Yes
  • No

If yes, please describe the impact and migration path for existing applications:

The PR fulfills these requirements:

If adding a new feature, the PR's description includes:

  • A convincing reason for adding this feature (to avoid wasting your time, it's best to open a suggestion issue first and wait for approval before working on it)

Other information:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
1 participant