Concatenating string with data element value | Community
Skip to main content
Sebastiane_Edberg_
Community Advisor
Community Advisor
September 10, 2020
Solved

Concatenating string with data element value

  • September 10, 2020
  • 1 reply
  • 2023 views

Hi guys, i want to load a script with dynamic values based on domain, so i have set up a data element with the different values based on document.locationHostname, it seems to work as expected and the value changes based on site domain.
running into some issues when trying to load the string in the HTML custom code of rule.

 

so this is the string, it will fail at the getVar portion of the string:

<script src='https://sripturl/rc/'+(_satellite.getVar('account_string')+'/scripts/s.js' type='text/javascript'></script>  

 

so what im after is a string that looks like this (given the data element value is 12345):

<script src='https://sripturl/rc/12345/scripts/s.js' type='text/javascript'></script>  

 

i guess theres some single double quotation issues here, or maybe its not possible to do? 
Any pointers appreciated!

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by yuhuisg

There are a few problems, e.g. you have an opening "(" but no corresponding closing ")". But the main problem is that you're mixing HTML and JavaScript together.

I suggest using this JavaScript code instead:

var script = document.createElement('script');
script.src = 'http://sripturl/rc/' + _satellite.getVar('account_string') + '/scripts/s.js';
script.type = 'text/javascript'; document.getElementsByTagName('head')[0].appendChild(script);

Reference: https://stackoverflow.com/a/18784960

1 reply

yuhuisg
Community Advisor
yuhuisgCommunity AdvisorAccepted solution
Community Advisor
September 11, 2020

There are a few problems, e.g. you have an opening "(" but no corresponding closing ")". But the main problem is that you're mixing HTML and JavaScript together.

I suggest using this JavaScript code instead:

var script = document.createElement('script');
script.src = 'http://sripturl/rc/' + _satellite.getVar('account_string') + '/scripts/s.js';
script.type = 'text/javascript'; document.getElementsByTagName('head')[0].appendChild(script);

Reference: https://stackoverflow.com/a/18784960

Sebastiane_Edberg_
Community Advisor
Community Advisor
September 11, 2020
Hi, great, this works, one thing to note though is that it will not work with Page Bottom or Page Top event , a direct call or DOM ready event works fine