Javascript 使用JS删除onclick函数

Javascript 使用JS删除onclick函数,javascript,html,css,Javascript,Html,Css,我使用的主机具有导航栏模板,我可以设置样式,但无法编辑其中的内容。搜索功能会打开一个搜索框,但是我在实际页面/搜索上开发了一个高级搜索。。有没有办法从这个链接中删除onclick和target?我无法访问实际的HTML来删除它,因此我必须有一些东西覆盖它 <a class="mainmenu" href="/search" onclick="showhide(document.getElementById('search_menu'));

我使用的主机具有导航栏模板,我可以设置样式,但无法编辑其中的内容。搜索功能会打开一个搜索框,但是我在实际页面/搜索上开发了一个高级搜索。。有没有办法从这个链接中删除onclick和target?我无法访问实际的HTML来删除它,因此我必须有一些东西覆盖它

 <a class="mainmenu" href="/search" onclick="showhide(document.getElementById('search_menu')); return false;" target="_blank">Search</a>

将null赋值给IDL属性将清除内联处理程序:

const a=document.querySelector(“.main菜单”);
a、 onclick=null;
a、 删除属性(“目标”)

您可以使用removeAttribute函数删除这些属性。下面是一个工作示例

window.onload=function(){
var anc=document.getElementsByClassName(“主菜单”);
anc[0]。删除属性(“目标”);
anc[0]。删除属性(“onclick”);
}

删除
目标和
onclick
属性,并用
javascript:void(0)
替换
href
属性值。您可以使用下面的代码进行此操作

var a=document.getElementsByClassName('main menu')[0];
a、 删除属性(“onclick”);
a、 删除属性(“目标”);
a、 setAttribute('href','javascript:void(0')

您不能访问HTML是什么意思?你能用Javascript来做吗?你想入侵网页吗?@Rojo,不,我不是想入侵网页。这是一个web主机,其中菜单是一个模板,因此我可以访问的代码是“
  • {GENERATED\u NAV\u BAR}
”,显然,我无法访问从搜索函数中删除onclick的功能。等等,如果对象是常量,您确定可以设置对象的属性吗?当然可以。const所做的一切就是防止变量名被重新分配给其他对象。它不会阻止对象发生变异。
document.querySelector('.main menu')
是更好的做法。使用宽选择器选择内容通常是一个坏习惯。@vdegenne,我尝试了这段代码,但它仍然允许链接生成弹出窗口,而不是指向页面,有什么想法吗?@mikehunni在一个独立文件中仔细检查,目标
\u
看起来已成功删除;单击独立文件中的链接会导致整个页面重定向到
/search
var
getElementsByClassName
?我们生活在2021年man@vdegenne这个解决方案有问题吗?我没说这个解决方案有问题。只是使用了旧的语法。