如何使用jquery / javascript从头部动态添加的脚本标记中读取值

时间:2015-12-30 10:34:29

标签: javascript jquery

我有一个从服务中获取的脚本标记。我只是将它附加到html的头部。

它会被追加,但事实是它有一些我需要在我的应用程序中访问的值。

<script>

abc.header.value = "1";
abc.header.path = "/abc/def/ghi?isThirdParty=false&version=v123";

</script>

如果我尝试访问abc.header.value,将脚本添加到标题中,它会抛出undefined。

如何从添加的脚本中访问值。而且我有一个全局对象,有没有办法将所有这些动态添加的值添加到该对象?

示例代码段:  我从ajax调用获取脚本标记并将其存储在变量中。

var sampSnip = "<script> abc.header.value = "1"; abc.header.path = "/abc/def/ghi?isThirdParty=false&version=v123"; </script>";

$('head').append(sampSnip);

1 个答案:

答案 0 :(得分:1)

看一下我刚刚为你写的这个简单的登录表格。

// HTML

for (int i=idx; i<count; i++)

// JS

<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" href="styles/index.css"> 
    <script src="scripts/index.js"></script>
</head>
<body>
    <form>
        <input type="text" name="username" placeholder="username">
        <input type="password" name="password" placeholder="password">
        <input id='signin' type="button" value="Sign In">
    </form>
</body>
</html>

// PHP

document.addEventListener("DOMContentLoaded", init);

function init(){
    document.getElementById('signin').addEventListener('click', click.signin);
}
var click = {
    "signin": function(e){
        e.preventDefault();
        var inputs = e.target.parentNode.children;
        var data = new FormData();
        var client = new XMLHttpRequest();
        for(var i=0; i < inputs.length; i++){
            if(inputs[i].type !== 'button'){
                data.append('credentials['+inputs[i].name+']', inputs[i].value);                
            }
        }
        client.addEventListener("load", callback.signin);
        client.open("POST", "/core/signin.php");
        client.send(data);
    }   
};
var callback = {
    "signin": function(e){
        var data = JSON.parse(e.target.response);
        console.log(data);
    }   
};

// CSS

<?php
echo json_encode($_POST['credentials']);
?>