Если у веб-страницы есть базовая ссылка, есть ли возможность ее игнорировать, когда мы используем # ElementId , без обновления страницы?
Вот код:
<html>
<head>
<base href="http://www.google.com/" />
</head>
<body>
<div id="test">
Test
</div>
<button onclick="location.href='#test'">Back to Test</button>
<a href="#test">Back to Test!</a>
</body>
</html>
Когда я нажимаю кнопку или ссылку, я хочу, чтобы браузер перевел страницу на тест div #. Без тега base href все работает - однако с тегом base-href я не могу сделать это без помощи Javascript. Есть ли способ сделать это более «естественным» способом?
Ниже представлен обходной путь, который у меня есть на данный момент ...
<html>
<head>
<base href="http://www.google.com/" />
<script type="text/javascript">
function goToElement(elementId) {
var baseTag = document.getElementsByTagName("base")[0];
var existingBaseHref = baseTag.href;
baseTag.href = "";
location.href = "#" + elementId;
baseTag.href = existingBaseHref;
}
</script>
</head>
<body>
<div id="test">
Test
</div>
<button onclick="goToElement('test')">Back to Test</button>
<a onclick="goToElement('test')">Back to Test!</a>
</body>
</html>