解決 react 項目控制台對 a 標簽 使用了 href 屬性(設置了值:javascript:;)的 warning 問題


先看看 react blog, 看官方怎么說的
In React blog post:

URLs starting with javascript: are a dangerous attack surface because it’s easy to accidentally include unsanitized output in a tag like <a href> and create a security hole.

In React 16.9, this pattern continues to work, but it will log a warning. If you use javascript: URLs for logic, try to use React event handlers instead.

我們在使用 a 標簽時,href屬性可以用於指定超鏈接目標的 URL,其值可以使任何有效文檔的相對的或絕對的 URL,包括片段標識符和 JavaScript 代碼段。用戶選擇了 a 標簽中的內容,瀏覽器會嘗試檢索並展示 href 屬性指定的 url 所表示的文檔,或者 執行 JavaScript 表達式、方法和函數的列表。
若用戶不想用 a 標簽的跳轉能力時,而要使用自己綁定的 click 事件,往往會通過插入 js 代碼段的方式,設置 href 值為javascript:;javascript:void(0) 以期達到 href 無跳轉的效果。但是這樣寫代碼會被 react 在控制台報如下錯誤:

console: A future version of React will block javascript: URLs as a security precaution. Use event handlers instead if you can. If you need to generate unsafe HTML try using dangerouslySetInnerHTML instead. React was passed "javascript:;"

解決辦法:屬性值使用#或者#!

before:

<a href="javascript:;" onClick={() => this.handleComment(record, true)}>{intl.get('COMMON_MODIFY')}</a>

after modified:

<a href="#!" onClick={() => this.handleComment(record, true)}>{intl.get('COMMON_MODIFY')}</a>

 

參:http://hellodk.cn/post/131


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM