2016-12-03 57 views
2

我有一个博客链接的外部JavaScript文件。我想改变它的价值。 (用JavaScript指派CSS值)JavaScript执行的优先级是什么?

是否有可能运行头部或身体相同的代码与JavaScript的分配不同的值? 例如,CSS给外部CSS样式表赋予最小优先级,并赋予文件内部给定的属性。

JavaScript是否有像这样的优先系统?

+1

我认为CSS优先选择最具体的选择器 – Grezzo

+0

如果你的问题已被回答,你现在应该接受这些答案之一,或者解释你需要知道更多的内容 – Grezzo

+1

@Grezzo对不起,我找不到它,但现在我接受。 – Rajesh

回答

2

这不是重点,但执行顺序。 Javascript没有涉及任何优先级,或者没有像CSS中的特殊性那样的东西,甚至不需要它。

Javascript代码是executed in the order it is included in the HTML document不管它是行内或外部JS,虽然events使事情变得有点复杂,我们可以安排代码稍后某些事件像window“加载”事件中运行。所以很容易确保代码在他们之后运行,但是如果他们说从onload事件处理程序改变样式,那么您必须将代码添加到相同的event本身。 (至少在规范中确保了DOM3中的事件处理程序的顺序)

但是,您是否尝试过在CSS中使用!important,它可以重写内联样式,并且在某些情况下适用于此类。但是,如果你能够使用JavaScript很好地移除样式。

0

Javascript代码在包含点执行。

HTML解析器

  • 解析标签
  • 发现的JavaScript
  • (可选)下载JavaScript的
  • 停止解析HTML
    • 解析JS
    • excecute JS
  • 简历解析HTML
  • 认定的JavaScript
  • (可选)下载JavaScript的
  • 停止解析HTML
    • 解析JS
    • excecute JS
  • 简历解析HTML

当心这样的事情挂钩本身domready中的事件代码,只有被解雇时,文件加载完成或其他事件,然后将其归结为在顺序对其进行注册。

也有类似的事情和延迟异步,这将使中加载/ parralel执行,以解析(细节和supporr每个浏览器有所不同)。 但在大多数情况下,谷歌博客中没有大量修改过的模板,我所布置的隐私将会发生

+0

是啊,请原谅我解答这个问题,而不会泄露异常,推迟,通过脚本包含脚本,通过ajax请求加载的脚本和自我结合的JavaScript过多的问题。我尝试着迎合提问者的理解水平。 – Tschallacka

+0

完全有可能做到这一点,而没有指出事实,事实上,事实上,更细微。 (现在的确如此。)完全有可能以非恶劣的方式回应非常友好的评论。 –

0

JS在加载后立即执行,因此将脚本放在他们之后(或者在连接到外部文件之后,它内联),它将能够改变第一个脚本中的内容,但它可能已经被执行了。

您可能能够覆盖它的部分,如果他们的脚本等待运行的东西之前,像DOM ready事件

-1
if you have tow function with same name, one in head and another one in an external .js file and both of them write a value in <a>, the result will be from the internal one, let's look at an example 

<html> 
<head> 
<script src="myscripts.js"></script> 
<script type="text/javascript"> 
function test(){ 
document.getElementById("tester").innerHTML="Internal";  
} 
</script> 
</head> 
<body onload="test()"> 
    <a id="tester"></a> 
</div> 
</body> 
</html> 
------------------------------------- 
in myscripts.js 
function test(){ 
document.getElementById("tester").innerHTML="external";  
} 
------------------------------------- 
when the page run it shows: 
Internal 
+0

**错误**无论加载什么函数定义_last_是在加载body时运行的函数定义。在HTML中交换脚本元素的顺序(在内联脚本之后加载外部脚本),然后在浏览器窗口中看到“外部” – Grezzo