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

When crossOrigin prop is provided the rendered prop should be lowercase #14216

Closed
timneutkens opened this issue Nov 13, 2018 · 4 comments
Closed

Comments

@timneutkens
Copy link
Contributor

Do you want to request a feature or report a bug?

Potential bug

What is the current behavior?

When using:

<script crossOrigin="anonymous">

It will be rendered as

<script crossOrigin="anonymous" data-reactroot=""></script>

If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem. Your bug will get fixed much faster if we can run your code and it doesn't have dependencies other than React. Paste the link to your JSFiddle (https://jsfiddle.net/Luktwrdm/) or CodeSandbox (https://codesandbox.io/s/new) example below:

const React = require('react')
const ReactDom = require('react-dom/server')

const result = ReactDom.renderToString(
  React.createElement('script', {
    crossOrigin: 'anonymous'
  })
)

console.log(result)

What is the expected behavior?

The w3c spec as well as MDN docs refer to crossorigin being lowercased, I'm not sure if this affects anything as most of the html parsers I tried while investigating (w3c validator and cheerio) worked fine with crossOrigin not being lowercase.

Which versions of React, and which browser / OS are affected by this issue? Did this work in previous versions of React?

The reproduction uses latest React (yarn add react react-dom)

@gaearon
Copy link
Collaborator

gaearon commented Nov 13, 2018

It doesn't matter because HTML spec treats attributes as insensitive to the casing. Which lets us avoid some runtime work in React.

@gaearon gaearon closed this as completed Nov 13, 2018
@timneutkens
Copy link
Contributor Author

Awesome 👍

@upsuper
Copy link

upsuper commented Feb 11, 2019

This doesn't work for SVG. Attribute names on SVG elements are case-sensitive, thus crossOrigin is not going to work.

Maybe reopen this issue?

@upsuper
Copy link

upsuper commented Feb 11, 2019

You can see this example for the issue (under Chrome, since Firefox hasn't added support for crossorigin on SVG elements): https://jsfiddle.net/upsuper/y9q5fp3t/

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

No branches or pull requests

3 participants