2011-08-19 60 views
0

所以我一直在这个小时,并没有弄清楚,我知道有一个简单的解决方案,所以我想我会问在这里。我试图将文本区域的值作为Twitter分享按钮的一部分传递给链接。我认为问题是全局范围,我能够从我的外部JavaScript中获取变量,但不是从我的主PHP文件。例如。通过javascript传递动态文本输入到链接

下面是HTML:

<div id="share_twitter"> 
    Friends Twitter Username (optional) <input type="text" name="friends_twitter" value="@" /> 
<script type="text/javascript"> 
     window.document.write('<a href="http://twitter.com/share?text='+window.twitter_text+'&url=http://example.com/<?php echo $slug;?>" class="twitter-share-button"></a>'); 
</script> 

然后我的JavaScript中,是假设得到的“friends_twitter”的值,并将其发送回主画面,这将使我做出extenral.js一个动态链接到那些人的Twitter。

我试过这var friends_twitter_input = $("input[name=friends_twitter]");但得到undefined如果我做window.friends_twitter_input = $("input[name=friends_twitter]");它的工作稍好,但仍然没有按照预期。

我也写代码来检测,如果它被放置external.js

我可能会对此都错了里面,但我似乎无法得到它staight其中但只适用关键的变化。 Anyhelp会很棒。

更新

我得到的萤火,但不知道 “friends_twitter_input没有定义” 错误为什么

内custom.js

$(document).ready(function(){ 
var friends_twitter_input = $("input[name=friends_twitter]").val(); 
    $(".twitter-share-button").click(function() { 
      var friends_twitter_input = $('input[name=friends_twitter]').val(); 

    }); 
} 

内的index.php

<script type="text/javascript"> 
    window.document.write('<a href="http://twitter.com/share?text='+friends_twitter_input+'&url=http://example.com/<?php echo $slug;?>" class="twitter-share-button"></a>'); 
</script> 

我想我需要直到输入具有值或将值定义为空为止,才写入共享链接。

感谢您的帮助。

+0

你的代码是在'document.ready()'中吗? – Dennis

+0

@dennis外部jquery代码是。我也在'document.ready()' – BandonRandon

+0

以外的地方尝试过,代码也是指'window.twitter_text',这与'friends_twitter_input'有什么关系? – Dennis

回答

1

不太清楚所有代码的结构,但有几件事可能会有所帮助。

要从输入按钮获取值,这是您需要的代码。

var friends_twitter_input = $("input[name=friends_twitter]").val(); 

此外还要确保在输入文本到位后,尝试读取输入文本值的代码被执行。

页面加载使用后执行你的JavaScript这样的:

$(document).ready(function() { 
    //All your javascript here. 
}); 

挂钩到输入文本的oncahnge事件做到这一点(就绪处理程序中)

$("input[name=friends_twitter]").onchange(function() { 
    var friends_twitter_input = $(this).val(); 
}); 

请注意onchange事件中的代码仅用于演示目的,您应该想要使用onblur或更好地连接提交按钮的onclick事件。

+0

我认为这就是问题所在。在输入文本到位之后,不确定谁来执行代码。我想这就是密码功能的作用。 – BandonRandon

+0

要在页面加载后执行代码,您应该围绕在JavaScript文档加载事件后执行的JavaScript。 – theprogrammer

+0

而他们你可以连接输入框的onchange事件。 – theprogrammer