3

私はこのコンソールエラーでちょっと頭痛がありました。実際にはSafariで(実際にはMacBookで動作します)。jQuery.Deferred exception:文字列が期待されたパターンと一致しません

私はこの機能を持っている:別の関数の内部で呼び出さ

function exists(element){ 
    var exists = document.querySelector(element); 
    return exists; 
} 

:今

function includeHoverStylesheet(){ 
    var path = $("body").attr("data-hover"); 
    if (!("ontouchstart" in document.documentElement || exists("link[href='" + path + "'"))) { 
     var link = document.createElement("link"); 
     link.rel = "stylesheet", link.href = path, document.head.appendChild(link) && document.body.removeAttribute("data-hover"); 
    } 
} 

、Chromeでは魔法のように動作しますが、Safariでコンソールがこのエラーをスロー:

1) Invalid CSS property declaration at: * 
2) jQuery.Deferred exception: The string did not match the expected pattern. 
3) SyntaxError (DOM Exception 12): The string did not match the expected pattern. 

誰かが何が起こっているのか考えていますか?

ありがとうございました!

+1

)は、エラーを引き起こすのに十分である、' ''開口部を持っていません[ 'が、何の']。 –

答えて

3

閉じ括弧がないため、無効なセレクタを使用しています。すべてjquery-について https://www.reddit.com/r/firefox/comments/5nbmqi/on_handling_invalid_selector_strings/

が別のブラウザで無効なセレクタがテストされている以下の議論を見て持つ(ローマー-1888は、コメントとして述べたように)、唯一のSafariは、厳密なエラーを育てていることですユーザー: jqueryバージョンを確認してください。セレクタの問題がバグ修正されています。

私はのみのSafari上でこの文の

var div = $('<div class="abc">'); 

バージョンのjQuery 1.11.1を使用した場合のFirefoxとChrome上ではなく、Safariで正常に動作文を同じエラーが発生しました。 jQuery 1.12.4を使用してそれらのすべてでうまく動作します。私は、次の構文を使用して、それを解決した私の場合は

: `(存在しているに渡された文字列

var div = $('<div>', {"class":"abc"}); 
関連する問題