4 Replies Latest reply on Jan 11, 2019 6:05 AM by susheel

    Load omniture library via launch breaking

    susheel Level 3

      I am trying to load Adobe Visitor API for JavaScript version: 1.7.0 via Adobe Launch rule but the code is coming out of script tag after certain code.

       

      <script>somecode</script>
      remaining code coming out of script tag
      

       

      Not sure why its happening.

       

      any better way to load libraries ??

        • 1. Re: Load omniture library via launch breaking
          brandon_pack Adobe Employee

          We will probably need more information to help out on this.  Info like whether you are using the built in "Experience Cloud ID Service" extension or if you are doing it manually.  Also if you can provide more details like maybe a link to the property where you are seeing this and maybe the Launch propery, it would be helpful.

           

          Thanks

          • 2. Re: Load omniture library via launch breaking
            susheel Level 3

            I am not using the experience cloud id service. I am just loading it a java script via rules as that is how it was done in signal previously. The actual issue is:

            For example if the javascript is as below.

            <script>
                var test = '<script src=""><\script>';
                var test1="adasd";
            </script>
            

            Browser will treat </script> in the second line as end of script spit out the rest on the browser directly as below.

            <script>
                var test = '<script src="">
            </script>
            

            ;var test1="adasd";

             

            Somehow I tried to fix it by doing as below:

            <script>
                var test = '<script src=""><\scr'+'ipt>';
                var test1="adasd";
            </script>
            

            The above code worked in normal browser but when I put the script via launch seems like the code is getting converted while build I suppose and getting same issue again.

            • 3. Re: Load omniture library via launch breaking
              brandon_pack Adobe Employee

              Thanks for the additional info.  Version 1.7.0 of VisitorAPI.js is really old and no longer supported since we are at version 3.3.0 as of today.  I would recommend upgrading to a newer library and ideally use the built in Launch Extension for "Experience Cloud ID Service."  Then you can just use Launch to keep it up to date goting forward.  However if your use case does not allow for that, you should still be able to create a "Custom Code" action in a Launch rule.  Just choose "HTML" as your lanuage and then click on "Open Editor" and just include the script tags you need.

              CustomRule-1.png

               

              In your example above, the test variable would just be a String however and not actually load the external library unless you append it to the DOM or do something with it.  But if that's what you want to have happen, then just escape the closing slash and Launch should not have any syntax errors.  This worked for me:

              <script> 
                  var test  = '<script src="/js/VisitorAPI_1_7_0.js"><\/script>'; 
                  var test1 = 'adasd';
              </script>
              

               

              Console output:

              test

              "<script src="/js/VisitorAPI_1_7_0.js"></script>"

              test1

              "adasd"

              • 4. Re: Load omniture library via launch breaking
                susheel Level 3

                That was just an example script to explain the issue.