我正在尝试与 Adobe Test & Target 交互,因为我想通过我的 mbox 加载 JSON 而不是标记。我想将一些 mbox 内容加载到 javascript 中并手动将其添加到 DOM。我已经到处搜索了 mbox.js 的完整文档,但除了最基本的内容之外我找不到任何东西。它描述了如何使用mboxDefine()
和mboxUpdate
定位特定的 dom 元素。有没有只返回内容的函数?```
2 回答
T&T 不提供将响应分配给 javascript 变量的功能。基本上它的工作方式是mbox.js
为他们的服务器构建一个 url,然后输出一个脚本包含标签。这样做是为了绕过同源策略限制(跨站点脚本)。
为了处理 html 报价中的任何内容,他们将其放入服务器上自己的 javascript 变量中,然后将其作为响应输出。但是,它们也有响应输出更新目标元素的代码。因此,您实际上无法阻止他们使用 html 提供内容更新目标元素。他们根本不会暴露这一点。
但是,您不必将 html 放入 html 报价中。您可以将 json (javascript) 放入 html 报价中。喜欢就好
html 提供“myJsonMbox”(在界面中)
<script type='text/javascript'>
var myJsonString = "[json string]";
</script>
然后在您的页面上(在您的 body 标签内,但在您想要使用它的代码之前)您将拥有常规的 mbox 代码:
<div class='mboxDefault'></div>
<script type='test/javascript'>
mboxCreate('myJsonMbox');
</script>
然后在那之后的某个地方,你想用它做点什么,那myJsonString
是你可以参考的。或者,如果您愿意,您可以在页面加载后的某个时间mboxDefine
执行此操作。mboxUpdate
您认为这对您不起作用有什么特别的原因吗?
你可以:
a- 插入您将用于手动操作 DOM 的 JS 代码
b- 插入可用于更改原始 HTMl 或新添加的 HTML 的 CSS 代码。
c- 插入对第 3 方脚本的调用,该脚本将在需要时从第 3 方服务器或同一服务器加载内容。