Я делаю что-то подобное, каждый раз gRibbon.Invalidate
#If VBA7 Then
Declare PtrSafe Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ( _
ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long)
#Else
Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ( _
ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long)
#End If
Public gRibbon As IRibbonUI
#If VBA7 Then
Function GetRibbon(ByVal lRibbonPointer As LongPtr) As Object
#Else
Function GetRibbon(ByVal lRibbonPointer As Long) As Object
#End If
Dim objRibbon As Object
Call CopyMemory(objRibbon, lRibbonPointer, LenB(lRibbonPointer))
Set GetRibbon = objRibbon
Set objRibbon = Nothing
End Function
Public Sub OnRibbonLoad(ribbon As IRibbonUI)
Set gRibbon = ribbon
'SAVE SETTINGS TO REGISTRY
SaveSetting "POP", "RIBBON", "ribbonPointer", ObjPtr(gRibbon)
End Sub
Public Sub OnActionButton(control As IRibbonControl)
If gRibbon Is Nothing Then
Set gRibbon = GetRibbon(GetSetting("POP", "RIBBON", "ribbonPointer"))
End If
On Error Resume Next
gRibbon.Invalidate
On Error GoTo 0
End Sub
Любой удаляет Ваш base
отметьте или измените Ваш href
атрибуты, которые будут полностью определены. То, что Вы наблюдаете, является намеченным поведением, когда Вы смешиваетесь base
с a
элементы.
Если Вы склонны использовать тег, другое решение не состоит в том, чтобы использовать # в качестве цели href (когда Вы не указываете тот, это вызывает переход к верхней части страницы, которую я нахожу нежелательным). То, что можно сделать:
<a href="javascript:">Some Link that Goes nowhere</a>
Действительно, хотя, если Вы не делаете что-то, что требует, чтобы, чтобы быть тегом промежуток был бы Вашим лучшим выбором:
CSS:
.generic_link {
text-decoration:underline;
}
.generic_link:hover {
text-decoration:none;
}
HTML:
<span class="generic_link">Something that really isn't a link</span>
Если нет никакого URL, который подходит для пользователя не-JavaScript, то не используйте <a>
. <a>
теги для ссылок на другие страницы.
Любой видимый элемент HTML может иметь onclick и не будет иметь этой проблемы, которую Вы описываете.
Вернуть false
на onclick
событие для отключения ссылки:
<a href="#" onclick="doSomething(); return false">Link Text</a>
(Это - просто пример того, как Вы сделали бы это встроенный. Но старайтесь избегать встроенных объявлений и используйте методы прогрессивных улучшений.)