Edge Animate:如何将 javascript 移动到 html?

Edge Animate: how to move javascript into html?

提问人:jiggy1965 提问时间:4/7/2016 更新时间:4/17/2019 访问量:1599

问:

我需要在 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文件?

JavaScript HTML、 Adobe-Edge

评论


答:

0赞 Klajbar 4/10/2016 #1

这可能很奇怪,但如果你只是把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>

评论

0赞 jiggy1965 4/11/2016
这不是我想要的,又是一个外部js文件。Edge 现在使用 AdobeEdge.loadComposition ('test', ...以加载 Edge 在发布时创建的test_edge.js文件。我也希望将该文件嵌入到我的 html 文件中。除了将 base24 用于图像之外,我还希望将该文件嵌入到我的 html 文件中。我想最终得到的是一个包含所有图像的 base24、edge.6.0.0.min.js 和 test_edge.js 代码的 html 文件
0赞 Klajbar 4/12/2016
请查看,编辑内容。我希望这是你想要的。
0赞 jiggy1965 4/12/2016
已经试过了,但这不起作用。AdobeEdge.loadComposition 专门查找test_edge.js文件,而不是任何内联内容。它要查找的文件被提及为参数,但没有“_edge.js”部分。这就是让它变得困难的原因。不知何故,我需要让 loadCompostion 加载test_edge.js的内联内容而不是外部文件本身。
0赞 jiggy1965 4/12/2016
我希望有这样的东西: i.imgur.com/xSwJJNk.png 但是,然后让 AdobeEdge.loadComposition 加载现在位于脚本标记之间的test_edge.js的内容,而不是搜索该外部文件(然后我可以删除该文件)
0赞 Learner 11/21/2018
请问如何请?我的意思是如何生成它?我读过其他帖子,数字不同。谢谢。EDGE-102396420
0赞 exaviore 7/7/2016 #2

有一个类似的问题想要将 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,还没有测试你是否选择包括预加载的东西。

0赞 Misha Rodshtein 10/4/2016 #3

只需将您 *_edge.js 放在运行时 js 之后。
在运行时 js 中搜索 timeout function = 10 sec.
将其更改为 0 秒,运行时将在加载时启动 Animate。
但是您仍然会在控制台中出现错误加载 *_edge.js。这并不那么重要。

0赞 Prem Chand 10/27/2017 #4

放置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>
0赞 Mayank Sudden 4/17/2019 #5

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

  1. 删除 liabrary(edge.6.0.0.min.js) 中的下行,美化后搜索

  2. “_edge.js?symbol=” +

4.+ “_edge.js”

  1. 保存并嵌入到 HTML 中(<script type="text/javascript" src="edge.6.0.0.min - Copy.js"></script>)

  2. 从 728x90_edge.js 中剪切所有代码并嵌入到 html 中,在 loadComposition 函数关闭后 现在728x90_edge.js将是空的,它仅用于加载。</script>

  3. 在 AdobeEdge.loadComposition('728x90', 'EDGE-11479078', { 例如,AdobeEdge.loadComposition('728x90_edge.js', 'EDGE-11479078', {

  4. 现在上传所有文件 html、图像和两个 js 文件。

  5. 现在,您可以将宏用于两个js文件和图像。

  6. 它正在 Local 和 DFP 上工作。