Javascript变量无法在HTML文件中显示

时间:2011-08-09 10:23:51

标签: javascript html

看看我的代码:

<html>
<head>
<title>Profile App Example</title>

<script type="text/javascript" src="http://platform.linkedin.com/in.js">
  api_key: some secret api key
  authorize: true
</script>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <link media="all" type="text/css" href="http://developer.linkedinlabs.com/tutorials/css/jqueryui.css" rel="stylesheet"/>
  <script type="text/javascript" src="http://code.jquery.com/jquery-1.5b1.js"></script>
  <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.7/jquery-ui.min.js" ></script>

<script type="text/javascript">

function loadData() {
  IN.API.Profile("me")
    .fields(["id", "firstName", "lastName", "pictureUrl","headline"])
    .result(function(result) {
      profile = result.values[0];
/*
      profHTML = "<p><a href=\"" + profile.publicProfileUrl + "\">";
      profHTML += "<img class=img_border align=\"left\" src=\"" + profile.pictureUrl + "\"></a>";     
      profHTML += "<a href=\"" + profile.publicProfileUrl + "\">";
      profHTML += "<h2 class=myname>" + profile.firstName + " " + profile.lastName + "</a> </h2>";
      profHTML += "<span class=myheadline>" + profile.headline + "</span>";
*/
        profHTML = profile.id;
        //alert(profHTML); alerts the id
      //$("#profile").html(profHTML);
    });
}

</script>

</head>
<body class="yui3-skin-sam  yui-skin-sam">

<script>alert(profHTML);</script> <!-- Does not alert anything-->
<div id="profile">
    </div>  
    <script type="IN/Login" data-onAuth="loadData"></script>
</body>
</html>

我正在尝试捕获HTML文件中的配置文件ID,但无法执行此操作。如何在HTML文件中显示它?为什么我的代码不起作用。请帮忙

2 个答案:

答案 0 :(得分:0)

我认为你的变量范围有误。如果你首先在函数之外声明它,我认为它会起作用。

答案 1 :(得分:0)

您需要使用id='profile'创建元素并取消注释$("#profile").html(profHTML);行。 $("#profile").html(profHTML)是jQuery提醒HTML的方法之一。

更新:您是否尝试取消注释$("#profile").html(profHTML);?如果是的话,你有没有错误?

更新2:如果您需要从函数中获取这些变量,您可以执行以下操作:

var my_var = null;
function loadData() {
    //.....
    profHTML = profile.id;
    my_var = profHTML;
    //.....
}

如果没有 - 我无法理解你想用这个变量做什么。请进一步解释。 :)

更新3:有两种选择:

  1. 向后端发出AJAX请求并保存cookie。请参阅JQuery.ajaxjQuery.cookie
  2. 将该值写入登录表单中的隐藏输入,因此该值将在表单提交时提交给您的后端。

    jQuery('#hidden').val(profile.id); //....somewhere in html....// <form> <!--your login form --> <input type='hidden' id='hidden' value=''> <!-- some other html --> </form>