Получите доступ к $ _GET с помощью Javascript и обновите <script data-email = ""> </script> - PullRequest
0 голосов
/ 01 мая 2018

Мне немного тяжело ценить помощь.

Я даю этот код клиентам для размещения на своем сайте, передаю данные мне и загружаю динамический контент:

<script type="text/javascript" src="https://example.com/countdown_timer_evergreen.php" 
data-launch_owner_email_hashed="94bd214b329301668349352de430bb6d" 
data-launch_id="43" data-email="<?php echo $_GET['email'];?>">
</script>

Поскольку многие клиенты не имеют php, я должен использовать Javascript для захвата электронной почты из $ _GET. Поэтому я использую такой код:

<script>
    var getUrlParameter = function getUrlParameter(sParam) 
      {
        var sPageURL = decodeURIComponent(window.location.search.substring(1)),
        sURLVariables = sPageURL.split('&'),
        sParameterName,
        i;
        for (i = 0; i < sURLVariables.length; i++) 
          {
            sParameterName = sURLVariables[i].split('=');
            if (sParameterName[0] === sParam) 
              {
                return sParameterName[1] === undefined ? true : sParameterName[1];
              }
          }
      }
    var email = getUrlParameter('email');
  </script>

Как я могу обновить свой исходный код, заменить вывод содержимого javascript (захватить письмо с помощью JS выше) и дать им код? Я хочу дать им 1 кусок кода. Не уверен, как передать значение email между скриптами.

И это мой код, который получает данные (countdown_timer_evergreen.php)

<?php 
//Allow cross-origin requests 
header('Access-control-allow-origin: *'); 

$action = isset($_GET['action'])?$_GET['action']:null; 
switch ($action){ 
    case 'load-template': 
        DoLoadTemplate(); 
        break; 
    default: 
        DoDefault(); 
} 
exit;  

function DoDefault(){ 
    header('Content-type: text/javascript'); 

?>
(function(window){ 
    var currentScript = document.currentScript; 
    var apiUrl = currentScript.src; 

    if (!('jQuery' in window)){ 
        loadJQuery(initialize); 
    } else { 
        initialize(); 
    } 

    function loadJQuery(cb){ 
        var script = document.createElement('script'); 
        script.src = 'https://code.jquery.com/jquery-3.3.1.min.js'; 
        script.type = 'text/javascript'; 
        script.addEventListener('load', cb); 
        document.getElementsByTagName('head')[0].appendChild(script); 
    } 

    function initialize(){ 
        var $currentScript = $(currentScript); 

        var params = $.param({ 
            action: 'load-template' 
            , launch_owner_email_hashed: $currentScript.data('launch_owner_email_hashed')
            , launch_id: $currentScript.data('launch_id') 
            , email: $currentScript.data('email') 
        }); 
        console.log(params);

        $.get(apiUrl, params).then(function(html){ 
            var div = $('<div>').html(html); 
            $currentScript.after(div); 
        }); 
    } 
}(this)); 
<?php 
} 

function DoLoadTemplate()
	{ 
    	header('Content-type: text/html; charset=utf-8'); 
		$launch_owner_email_hashed = htmlspecialchars($_GET['launch_owner_email_hashed']);
		$launch_id = htmlspecialchars($_GET['launch_id']);
        $email = htmlspecialchars($_GET['email']);
		
	
	if($_SERVER['SERVER_ADDR']=="::1")
		{
			$root = "http://local.moosh.com/eg-launch-timer";
		}
	else 
		{
			$root = "https://moosh.com/eg-launch-timer";
		}
    ?> dd
<iframe src="<?php echo $root.'/'.$launch_owner_email_hashed.'/'.$launch_id.'/'.$email;?>" style="width:100%; height:100%; border:none;">    
</iframe>

<?php } ?>

Открыт для идей

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...