外部javascript中的函数不';行不通
这个问题很简单,我花了两个小时在上面,但我没有任何想法。没有像Jquery这样的库。这是世界上最简单的功能之一。我确信这个函数正在工作,因为当我把它做成内联代码时,它就工作了。下面是代码:外部javascript中的函数不';行不通,javascript,html,function,dom,external-script,Javascript,Html,Function,Dom,External Script,这个问题很简单,我花了两个小时在上面,但我没有任何想法。没有像Jquery这样的库。这是世界上最简单的功能之一。我确信这个函数正在工作,因为当我把它做成内联代码时,它就工作了。下面是代码: <head> <link type="text/css" rel="stylesheet" href="vars.css"> <link type="text/css" rel="stylesheet" href="font.css"> <li
<head>
<link type="text/css" rel="stylesheet" href="vars.css">
<link type="text/css" rel="stylesheet" href="font.css">
<link type="text/css" rel="stylesheet" href="site.css">
<script src="viewport-units-buggyfill.js" ></script>
<script src="default.js"></script>
<script src="site.js"></script>
<!--<script>
function byId(id)
{
return document.getElementById(id);
}
</script>-->
</head
如您所见,如果我激活注释代码,一切都正常运行。
以下是Chrome开发工具的屏幕截图:
我正在使用括号实时预览来查看页面。另一个代码就是因为这个
注意:当我直接从index.html运行它时,我意识到它正在工作。但它不使用括号或服务器(甚至Dropbox或Gdrive服务器)。所以我认为这可能是脚本路径的问题
谢谢。考虑到查找脚本的网络路径中可能存在错误,我实际上建议您不要实现byId。。。在分析了你想要实现的目标之后,你根本不需要它 您正在单击一个元素,并在单击时尝试查找相同的元素,以便可以更改该元素的innerHTML属性?这就像看着一条狗追逐它的尾巴 您不需要在DOM中找到刚刚与之交互的元素。这将使您直接访问刚才单击的元素。因此,您可以将其作为参数传递给任何函数,也可以内联修改它 你的例子是:
<section id="den" onclick="byId('den').innerHTML = 'red';" class="gizlimenu">
</section>
可以变成:
<section id="den" onclick="this.innerHTML = 'red';" class="gizlimenu">
</section>
请参见运行示例:
您可以尝试使用绝对路径,如“/…/default.js”吗?注意:不是服务器的路径,而是主机名。所以我认为这可能是脚本路径的问题。你查过了吗?查看“网络”选项卡以查看正在加载的内容。这是事实,但它并没有解决此处的主要问题,即OP的脚本似乎无法加载。@JLRishe好吧,除了他自己,没有人可以修复他的问题。调用部分只是我代码中的一个调用。还有其他元素使用相同的函数。我知道如果我用这个会更容易,但实际上这不是我的问题。
<section id="den" onclick="byId('den').innerHTML = 'red';" class="gizlimenu">
</section>
<section id="den" onclick="this.innerHTML = 'red';" class="gizlimenu">
</section>