提问人:jiggy1965 提问时间:4/7/2016 更新时间:4/17/2019 访问量:1599
Edge Animate:如何将 javascript 移动到 html?
Edge Animate: how to move javascript into html?
问:
我需要在 Edge Animate 中创建一个独立的 html 横幅。为此,我已经将图像编码为 base24。我只需要将javascript包含在该html中。当我发布横幅时,Edge 默认添加一个“edge_includes”文件夹,其中包含“edge.6.0.0.min.js”和一个与 html 文件位于同一位置的 javascript 文件,该文件的名称与 html 文件相同,但扩展名为“_edge.js”。例如“text_edge.js”。两个 .js 文件都需要移动到已发布的 html 文件中。
通过在提到该 .js 文件的 html 文件的脚本标签之间移动它的脚本,我可以轻松移动“edge.6.0.0.min.js”文件。
但是,test_edge.js文件更困难。一个典型的已发布的 html 文件包含以下内容:
<script> AdobeEdge.loadComposition('test', 'EDGE-102396420', {
scaleToFit: "none",
centerStage: "none",
minW: "0px",
maxW: "undefined",
width: "300px",
height: "250px" }, {"dom":{}}, {"dom":{}});
</script>
我猜这是 Edge 通过“loadComposition”加载“test_edge.js”文件的地方。但是,我怎样才能将该test_edge.js文件的内容复制到我的html文件中呢?例如,我不能用“test_edge.js”的内容替换“test”。有没有其他方法可以将该文件的内容加载到我的 html 文件中?例如,通过在脚本标记之间进行处理并使 loadComposition 加载该脚本部分而不是外部test_edge.js文件?
答:
这可能很奇怪,但如果你只是把js放在标签里,它应该可以工作。标头应如下所示:<script>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
<title>Untitled</title>
<!--Adobe Edge Runtime-->
<style>
.edgeLoad-EDGEK-472634723 { visibility:hidden; }
</style>
<script>
//Here goes the whole content from the test_edge.js
//Just ctrl+C and ctrl+V everything from it
</script>
<script>
//Here goes the whole content from the edge.6.0.0.min.js
//Just ctrl+C and ctrl+V everything from it
</script>
<script>
//Here goes the AdobeEdge.loadComposition stuff...
</script>
</head>
而且不要忘记在零件内部创建类本身<body>
<div class="EDGE-102396420"></div>
评论
EDGE-102396420
有一个类似的问题想要将 js 集成到一个 html 中,但我无法让它工作,除非对边缘运行时本身进行一些调整,所以不幸的是它会破坏 adobe 给你的 cdn 速度。但除此之外,这种方法与@Klajbar给出的答案相似。 如果在边缘运行时内部进行检查以确保与其他文件兼容,则需要边缘运行时
我所做的是在loadComposition中添加一个变量,然后在if语句中封装具有f.load(a + “_edge.js”)的调用,以确保在需要时在没有变量的情况下运行。 摘自修改后的 edge.runtime.js 示例
//added inline as last variable
loadComposition: function(a, b, c, g, m,inline) {
function n(a, g) {
W(function() {
var m =
d("." + b),
k = /px|^0$/,
n = c.scaleToFit,
e = c.centerStage,
h = c.minW,
f = c.maxW,
l = c.width,
s = c.height,
y = m[0] || document.getElementsByTagName("body")[0];
"absolute" != y.style.position && "relative" != y.style.position && (y.style.position = "relative");
s && (y.style.height = s);
l && (y.style.width = l);
/^height$|^width$|^both$/.test(n) && (h = k.test(h) ? parseInt(h, 10) : void 0, f = k.test(f) ? parseInt(f, 10) : void 0, v(d(y), n, h, f, !1, c.bScaleToParent));
/^vertical$|^horizontal$|^both$/.test(e) && t(y, e);
a && L(H[b], null, a.dom, a.style, m[0], g + b);
m.removeClass("edgeLoad-" +
b)
})
}
/** removed some code here just for legibility **/
//if statement to override loading js files
if(!inline){
ba ? (window.edge_authoring_mode ||
(g ? (f.definePreloader(g), e()) : f.load(a + "_edgePreload.js", e)), a && (c && c.bootstrapLoading ? ka.push(a) : window.edge_authoring_mode && c.sym ? f.load(a +
"_edge.js?symbol=" + c.sym) : f.load(a + "_edge.js"))) : window.edge_authoring_mode ||
(m ? (f.defineDownLevelStage(m), h()) : f.load(a + "_edgePreload.js", h))
f.load(a + "_edge.js");
}
完成后,您可以将代码包含在同一个 html 中,其中首先加载运行时,然后加载 loadComposition 块,然后是 _edge.js 代码。 例:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
<title>Untitled</title>
<script>
//modified edge.runtime.js file
</script>
<style>
.edgeLoad-EDGE-24658395 { visibility:hidden; }
</style>
<script>
AdobeEdge.loadComposition('jem%26fix_afrens_930x180_uge14', 'EDGE-24658395', {
scaleToFit: "none",
centerStage: "none",
minW: "0px",
maxW: "undefined",
width: "930px",
height: "180px"
}, {"dom":{}}, {"style":{"${symbolSelector}":{"isStage":"true","rect":["undefined","undefined","960px","180px"]}},"dom":{}},true);
//notice appeded boolean value as the end to enable the override.
</script>
<!--Adobe Edge Runtime End-->
<script id="test">
// contents of _edge.js file
</script>
</head>
<body style="margin:0;padding:0;">
<div id="Stage" class="EDGE-24658395">
</div>
</body>
</html>
我只是用它来加载一个_edge.js,还没有测试你是否选择包括预加载的东西。
只需将您 *_edge.js 放在运行时 js 之后。
在运行时 js 中搜索 timeout function = 10 sec.
将其更改为 0 秒,运行时将在加载时启动 Animate。
但是您仍然会在控制台中出现错误加载 *_edge.js。这并不那么重要。
放置test_edge.js文件所在的文件夹的绝对路径。
例如 test_edge.js文件位于 a/b/c 文件夹下
<script> AdobeEdge.loadComposition('/a/b/c/test', 'EDGE-102396420', {
scaleToFit: "none",
centerStage: "none",
minW: "0px",
maxW: "undefined",
width: "300px",
height: "250px" }, {"dom":{}}, {"dom":{}});
</script>
Adobe Edge 在 html 文件中嵌入 js
当您看到边缘 html 文件时。有两个 js 和 images。 两个 js 都是外部调用的。一个是库,第二个是名为 js ex.(728x90_edge.js) 的函数 现在,当以 DFP 类型 custom 上传所有文件时,您将宏用于728x90_edge.js,并在此 js 中使用所有图像 src。 那么如何对图像使用宏。这就是挑战。 因此,您必须将此js嵌入到html中。然后,您将对图像使用宏。
按照步骤操作。
1、下载liabrary js
删除 liabrary(edge.6.0.0.min.js) 中的下行,美化后搜索
“_edge.js?symbol=” +
4.+ “_edge.js”
保存并嵌入到 HTML 中
(<script type="text/javascript" src="edge.6.0.0.min - Copy.js"></script>)
从 728x90_edge.js 中剪切所有代码并嵌入到 html 中,在 loadComposition 函数关闭后 现在728x90_edge.js将是空的,它仅用于加载。
</script>
在 AdobeEdge.loadComposition('728x90', 'EDGE-11479078', { 例如,AdobeEdge.loadComposition('728x90_edge.js', 'EDGE-11479078', {
现在上传所有文件 html、图像和两个 js 文件。
现在,您可以将宏用于两个js文件和图像。
它正在 Local 和 DFP 上工作。
评论