我需要在Edge Animate中创建一个自包含的html横幅。为此,我已经将图像编码为base24。我只需要将javascript包含在该html中。当我发布我的横幅时,Edge默认添加一个'edge_includes'文件夹,其中包含'edge.6.0.0.min.js'和一个javascript文件,该文件位于与html文件相同的位置,该文件与html文件相同但是加上'_edge.js'。例如'text_edge.js'。两个.js文件都需要移动到已发布的html文件。
'edge.6.0.0.min.js'文件我可以通过在提到.js文件的html文件的脚本标记之间移动脚本来轻松移动。
然而,test_edge.js文件更难。典型的已发布html文件包含以下内容:
new DefaultMultipartHttpServletRequest() {
@Override
public HttpHeaders getMultipartHeaders(String paramOrFileName) {
// your code here
}
}
这是 - 我猜 - Edge通过'loadComposition'加载'test_edge.js'文件。但是,如何将test_edge.js文件的内容复制到我的html文件中呢?例如,我不能用'test_edge.js'的内容替换'test'。有没有其他方法将该文件的内容加载到我的html文件中?通过在脚本标记之间进行处理并使loadComposition加载脚本部分而不是外部test_edge.js文件,例如?
答案 0 :(得分:0)
这可能很奇怪,但如果你只是将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>
答案 1 :(得分:0)
有一个类似的问题想要将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而没有测试你是否选择包含预加载的东西。
答案 2 :(得分:0)
在运行时js之后输入* _edge.js。
在运行时js搜索超时功能= 10秒。
将其更改为0秒,运行时将立即启动您的动画加载。
但是你仍然会在控制台中加载错误* _edge.js。它并不那么重要。
答案 3 :(得分:0)
放置test_edge.js文件所在文件夹的绝对路径。
例如 test_edge.js文件位于/ 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>
答案 4 :(得分:0)
当您看到边缘html文件时。有两个js和图片。 两种js都从外部调用。一个是库,第二个是称为js ex的函数。(728x90_edge.js) 现在,当以DFP广告管理系统类型自定义上传所有文件时,则可将宏用于728x90_edge.js和此js中的所有图片src。 然后如何使用宏的图像。那是挑战。 因此,您将不得不将此js嵌入html中。那么您将对图像使用宏。
1,下载图书馆js
在图书馆(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>)
在loadComposition函数关闭</script>
结束后,从728x90_edge.js中剪切所有代码并嵌入html中
现在728x90_edge.js将为空,仅用于加载。
使用AdobeEdge.loadComposition('728x90','EDGE-11479078',{ 例如AdobeEdge.loadComposition('728x90_edge.js','EDGE-11479078',{
现在上传所有文件html,图像和两个js文件。
现在您可以对两个js文件和图像使用宏。
它适用于本地和DFP广告管理系统。