2013-02-14 75 views
-2

我使用的插件是通过搜索网页Apprise发现的。迄今为止,它已经很好地满足了我的需求。但是,我想通知Facebook登录插件,并为我需要下面的代码:<script></script>标签里面的JavaScript代码?

<fb:login-button scope='email,publish_stream'> 
Login 
</fb:login-button> 

<script type='text/javascript' src='http://connect.facebook.net/en_US/all.js'></script> 
<script> 
window.fbAsyncInit = function() { 
    FB.init({ 
     appId: '123456789', 
     cookie: true, 
     xfbml: true, 
     oauth: true 
    }); 
    FB.Event.subscribe('auth.login', function(response) { 
     window.location = '/fb_redirect.php'; 
    }); 
    FB.Event.subscribe('auth.logout', function(response) { 
     window.location.reload(); 
    }); 
    }; 
    (function() { 
     var e = document.createElement('script'); e.async = true; 
     e.src = document.location.protocol + 
     '//connect.facebook.net/en_US/all.js'; 
     document.getElementById('fb-root').appendChild(e); 
    }()); 
要通过把

apprise(); 

被告知可以做

什么在JavaScript中。但是,将<script></script>标签放在JS代码(apprise();)内会引起各种混乱,因为尚不清楚JS代码的结束位置。

任何想法?

+3

你不能把'里面的javascript ' – 2013-02-14 21:15:33

+0

第一个代码块需要放在apprise()中; – Lance 2013-02-14 21:16:59

回答

5

的方法在<script>块和嵌入式Javascript中都起作用的是\uxxxx,其中xxxx是十六进制字符代码。

  • < - \u003c
  • > - \u003e
  • " - \u0022
  • ' - \u0027
  • \ - \u005c
  • & - \u0026

演示:jsFiddle

HTML:

<div onClick="alert('Hello \u0022>')">click me</div> 

<script> 
    var s = 'Hello \u003c/script\u003e'; 
</script> 
1

尽量将标签:

apprise('<scri' + 'pt>alert("hello");</sc' + 'ript>'); 
+0

这可能不是OP想要的。 – 2013-02-14 21:16:40

+0

@SalmanA也许不完全一样,但它是相同的概念。 – 2013-02-14 21:17:48

+0

看起来几乎是OP所要求的。 – adeneo 2013-02-14 21:18:17

1

你只需要逃避/字符:

BAD,异常

<script> 
    var html = "<script></script>"; 
</script> 

GOOD

<script> 
    var html = "<script><\/script>"; 
</script>