无法弄清楚为什么到处都可以使用Safari? 我有这个HTML:
<a href="javascript:;" class="tweet-btn" onclick="authenticateTwitter();">
<img src="img/sign-in-with-twitter.png" alt="">
</a>
和这个JS:
<script type="text/javascript">
var socialMediaServiceUrl =
// Staging
"http://gameconnect.svc";
var sessionFormat = "(S($))/";
var sessionId;
function format(s, value) {
return s.replace("$", value);
}
function authenticateTwitter() {
authenticate("Twitter");
}
function authenticateFaceBook() {
authenticate("FaceBook");
}
function authenticate(applicationName) {
$.ajax({
url: format(socialMediaServiceUrl, "") + "/Authenticate?appName=" + applicationName,
dataType: "jsonp",
success: function (response) {
sessionId = response.SessionId;
window.open(response.Url);
}
});
}
</script>
**编辑:SAFARI的POP-UP阻止了它,防止这种情况的任何解决方案?
答案 0 :(得分:1)
这些更改是否可以解决问题:
<a href="#" class="tweet-btn" onclick="authenticateTwitter(); return false;">
<img src="img/sign-in-with-twitter.png" alt="">
</a>
和
<script type="text/javascript">
var socialMediaServiceUrl = "http://gameconnect.svc"; // Staging
/* IMPLICIT SEMICOLON INSERTION? */
var sessionFormat = "(S($))/";
var sessionId;
function format(s, value) {
return s.replace("$", value);
}
function authenticateTwitter() {
authenticate("Twitter");
}
function authenticateFaceBook() {
authenticate("FaceBook");
}
function authenticate(applicationName) {
$.ajax({
url: format(socialMediaServiceUrl, "") + "/Authenticate?appName=" + applicationName,
dataType: "jsonp",
success: function (response) {
sessionId = response.SessionId;
window.open(response.Url);
}
});
}
</script>
答案 1 :(得分:0)
只需删除那个花哨的href="javascript:;"
属性即可。
或者将其定义为
href="javascript:authenticateTwitter();"
并删除onclick。
其中一个但不是两个都很短。
答案 2 :(得分:0)
尝试
<a href="#" class="tweet-btn" onclick="authenticateTwitter();">
<img src="img/sign-in-with-twitter.png" alt="">
</a>
或
<a href="javascript:authenticateTwitter();" class="tweet-btn">
<img src="img/sign-in-with-twitter.png" alt="">
</a>