Safariでlocation.hrefでの遷移ができないからaタグ生成して遷移させた

JSで遷移先を決めたいときに下記みたいなことすることあるじゃないですか。

<html>
<body>
  <a href="#" id="url1" onclick="transition1()">リンク</a>
</body>
</html>

<script>
function transition1(){
  location.href = "https://" + "www.google.co.jp";
}
</script>

Chromeでは動作して、JS内でlocation.hrefしたURLに遷移するんですけど、Safariだと動作しませんでした。

自分が試した時は、この記事のようなdocument.URLを使ってもだめだったし、

この記事に書かれているような2バイト文字も含まれていないURLだったし、

この記事に書かれているようなsetTimeoutを試してもだめだった。

じゃあどうしたかというと、aタグは使わずbuttonタグを使用して、JS内でa要素を生成してclick()して遷移させた。

こういう感じ。

<html>
<body>
  <button id="url2" onclick="transition2()">リンク</a>
</body>
</html>

<script>
function transition2(){
  var a = document.createElement('a');
  a.href = "https://" + "www.google.co.jp";
  a.click();
}
</script>