【发布时间】:2014-03-29 02:48:44
【问题描述】:
我对 Twitter 编程完全陌生,所以请原谅我的无知。我试图找到解决此问题的方法,但无济于事..
在 HTML 中我有这个:
<a href='javascript: submit_with_twitter()'>submit</a>
我使用自己的按钮来触发推文,因为该按钮实际上是一个“提交和推文”按钮,而不仅仅是一个标准的“推文”按钮。
在 JS 中:
function submit_with_twitter() {
twttr.events.bind('click', function (event) {
alert("foo");
});
var myURL = encodeURIComponent("http://www.xxx.org.uk/compose-letter");
var my_text = encodeURIComponent("blah blah");
var url = "https://twitter.com/intent/tweet?url=" + myURL + "&text=" + my_text + "&via=xxx";
window.open(url, "Twitter", "status = 1, left = 430, top = 270, height = 550, width = 420, resizable = 0");
}
推特弹窗打开,推文可以发布成功。但是,有两个问题:
1)tweet实际上是表单提交过程的第一阶段,所以当tweet已经发出时,JS需要检测到它才能触发表单提交
2) 弹窗不会自动关闭
如果我像这样手动包含 twitter JS:
<script type="text/javascript" src="//platform.twitter.com/widgets.js"></script>
调用我的 JS 函数时出现此控制台错误:
Uncaught TypeError: Object function a(e){if(!e)return;var t,r,i,o;n.apply(this,[e]),t=this.params(),r=t.size||this.dataAttr("size"),i=t.showScreenName||this.dataAttr("show-screen-name"),o=t.count||this.dataAttr("count"),this.classAttr.push("twitter...<omitted>...t'
如果我不手动包含推特 JS,推文仍然有效,但没有错误消息,也没有其他任何事情发生。
我应该补充一点,所有这些都是在 wordpress 中完成的。我在 WP 页面编辑器中包含了我自己的 JS 文件,因为这似乎通常效果最好,我添加了:
<meta name="twitter:widgets:csp" content="on">
到页面。
------------ 编辑 ----------
现在我的 JS 是这样的:
jQuery(document).ready(function($) {
// Code here will be executed on document ready. Use $ as normal.
console.log("jQuery(document).ready");
$.getScript('https://platform.twitter.com/widgets.js', function(){
// console.log("twttr: "+twttr);
console.log("twttr object: %o", twttr);
console.log("jQuery object: %o", jQuery);
$(twttr).ready(function (twttr) {
console.log("twttr ready, adding tweet handler");
$(twttr.events).bind('tweet', function () {
console.log("tweeted event!");
});
$(twttr.events).bind('click', function () {
console.log("click event!");
});
$(twttr.events).bind('follow', function () {
console.log("follow event!");
});
});
});
});
消除了所有错误,推文窗口现在自行关闭,所有控制台日志都按预期显示,除了应该在推文发出后出现的日志。
基本上,除了 tweet 事件从未被捕获之外,一切似乎都很好!
【问题讨论】:
标签: javascript jquery wordpress twitter