3

Microsoft の新しいブラウザ Edge は、 のような空の href を受け入れないよう<a href="">です。他のすべてのブラウザでは、これを使用してbaseタグにリンクできます。ただし、Edge ではそうではないようです。

href を./in this questionに設定することで、この問題の解決策を見つけました。

しかし、多くのサイトでこれを変更しなければならないのは非常に面倒です。すべての href 自体を変更する必要のない他の代替手段はありますか?

前もって感謝します。

4

1 に答える 1

0

ユーティリティ関数を使用して、空の href を書き換えます。例えば:

function rewrite_empty_hrefs()
  {
  var dom_parser = new DOMParser();

  var xml_serializer = new XMLSerializer();
  
  var old_html_dom = dom_parser.parseFromString(document.body.innerHTML,"text/html");

  var base_href = old_html_dom.querySelector("base").href;

  var old_xhtml_string = xml_serializer.serializeToString(old_html_dom);

  var new_xhtml_string = old_xhtml_string.replace(/(href=")(")/g, "$1"+base_href+"$2"); 

  document.body.innerHTML = new_xhtml_string;
  }

rewrite_empty_hrefs();
<base href="http://www.example.com">
<a href="">example.com</a>
<a href="">example.org</a>
<a href="">example.net</a>

参考文献

于 2016-11-07T23:13:35.647 に答える