2016-12-01 11 views
2

e.target.hrefがfirefoxで動作しません。これはクロームでのみ機能します。私は質問の解決策(event.target not working on Firefox)に従いましたが、まだFirefoxでは動作しませんでした。私はもっ​​と何かを加えなければなりませんか?e.target.hrefがfirefoxで動作しない

app.js

showModal(e) { 
    if (!e) { 
     e = window.event; 
    } 
    e.preventDefault(); 
    const event = e.target || e.srcElement; 
    const url = event.href; 
    console.log('url', url, event.href); 
    const redirectTo = url.substring(url.lastIndexOf('/') + 1); 
    this.setState({ show: true }); 
    this.context.router.transitionTo(redirectTo); 
    } 

<Nav 
    showModal={(e) => this.showModal(e)} 
    hideModal={() => this.hideModal()} 
    show={this.state.show} 
    onHide={() => this.hideModal()} 
/> 

Nav.js

<button 
    className="btn btn-default" 
    onClick={(e) => props.showModal(e)} 
> 
<Link to={{ pathname: '/signup' }}> 
    {props.intl.formatMessage({ id: 'nav.registration.text' }) } 
</Link> 
</button> 
+0

何を "Firefoxで動作しない" とはどういう意味?何を手に入れますか? – Oriol

答えて

1

getAttribute()

const tgt = e.target || e.srcElement; 
    const url = tgt.getAttribute('href'); 
    console.log('url', url, tgt); 
0を使用してみてください

showModal(e) { 
 
    if (!e) { 
 
     e = window.event; 
 
    } 
 
    e.preventDefault(); 
 
    const tgt = e.target || e.srcElement; 
 
    const url = tgt.getAttribute('href'); 
 
    console.log('url', url, tgt); 
 
    const redirectTo = url.substring(url.lastIndexOf('/') + 1); 
 
    this.setState({ show: true }); 
 
    this.context.router.transitionTo(redirectTo); 
 
    }

+0

私もそれを試しました。私はFirefoxでnullを持っていますが、それはクロムで動作し、また、私は文字列を操作する必要はありません。 – Serenity

+0

catをスキンする方法は複数あります: 'var xHref = tgt.getAttributeNode(" href ")。value' – zer00ne

関連する問題