JavaScript执行顺序

标签 javascript html dynamic

我想为 html 模板设计器提供静态 javascript 代码块,它可以是:

  • 内联或外联或两者兼而有之
  • 在 html 模板中使用一次或多次

每个 block 都可以确定其在模板中相对于其他 JavaScript 代码块的位置。

一个例子是使用 JavaScript 提供的图像横幅。我将代码提供给模板设计者,模板设计者将其放置在两个位置,一次用于标题中的水平横幅,一次用于垂直横幅。相同的代码在两个 block 中运行,但了解它们的位置可以确定是否提供水平或垂直图像横幅。

有道理吗?

另一个例子:假设您在网页中有相同的 2 个 javascript 标签,调用服务器上的外部脚本。服务器和/或脚本可以确定它属于哪个 javascript 标签吗?

注意:我们可以说这是一个挑战吗?我知道我可以很容易地避免这个难题,但我经常遇到这个问题。

最佳答案

JavaScript代码可以定位所有<script>页面上的元素,它可以检查属性和内容以检查它来自哪个元素。但这可能不是您想要的。

您想要的是一段 JavaScript,它可以用广告横幅替换页面上的标签。通常的解决方案是添加一个特殊元素,例如 IMG ,为此并给出IMG一个idclass或者甚至是自定义属性(如 adtype="vertical" ),然后使用 JavaScript 来定位这些元素并通过更改 src 来替换内容属性。

例如,使用 jQuery,您可以像这样创建图像:

<img src="empty.gif" width="..." height="..." class="ad" adtype="..." />

然后您可以使用以下命令找到每个图像

$('img.ad')

[编辑] 嗯,服务器显然知道哪个脚本属于哪个脚本标记,因为它插入了脚本。所以这是理所当然的。

如果脚本想要找出它在 DOM 中的位置,请添加一些可用于识别自身的内容,例如:

<script>var id= '329573485745';

然后你就可以走遍 script标签并检查哪一个包含变量 id 的值.

如果您调用外部脚本,则可以执行相同的操作,但必须在发出 HTML 时将 ID 添加到脚本标记:

<script id="329573485745" src="..." />

然后外部脚本可以检查 DOM 并查找具有此 id 的元素。顺便说一句,您将需要为此使用 UUID。

这样,一段JS就可以定位到将自己添加到页面中的script标签了。

关于JavaScript执行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2560025/

相关文章:

javascript - 循环 dom 元素以获取属性值

javascript - anchor 标记到页面中间

jquery - jquery Parallax 的跨浏览器滚动问题

c# - 如何将对象转换为不同程序集中的匿名类型?

c - 在 C 中使用 Realloc

javascript - 这是做私有(private)功能的好方法吗?

javascript - 在 jQuery live/delegate 中获取 "this"元素 ID,超时

javascript - 在 Javascript 函数中放置多个函数

testing - SpecFlow - 如何使用 NUnits TestCaseSource 属性等数据驱动测试?

javascript - Angular JS 中带有 Ng-Include 的未定义函数