2

イベントを表示するためにUIデータピッカーを使用してページを作成し、Facebookページタブ内に配置しようとしています。IE を除くすべてのブラウザーですべて正常に動作します。

初心者の愚かな推測かもしれませんが、問題は DOCTYPE にあると思いました。問題は、それが単なるページの場合、IE が正しくロードすることです。Facebookのiframe内に配置すると、doctypeが宣言されていてもjqueryがまったくロードされません。いろいろ試してみましたが、何が起こっているのかわかりません。誰か助けてくれませんか?

HTML:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>


<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
</script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>

<style>
.popup{
display:none;

}
</style>

</head>
<body>
<div class="centralizar">

<div id="calendario"></div>

<div id="popup1" class="popup">
<h3><strong>Teste1</strong></h3>
</div>

<div id="popup2" class="popup">
<h3><strong>Teste2</strong></h3>
</div>

<div id="popup3" class="popup">
<h3><strong>Teste3</strong></h3>
</div>

<div id="popup4" class="popup">
<h3><strong>Teste4</strong></h3>
</div>

<div id="popup5" class="popup">
<h3><strong>Teste5</strong></h3>
</div>

<div id="popup6" class="popup">
<h3><strong>Teste6</strong></h3>
</div>


</div>
</body>
</html>

これはjQueryです:

$(function(){

var specialDays = {
    '2013': { 
        '5': { 
            '27': {
                content: "Teste", 
                className: "eventos",
                popupID: "popup1"
            }
        },
      '6': { 
            '10': {
                content: "Teste", 
                className: "eventos",
                popupID: "popup2"
            }  

        },
      '7': { 
            '13': {
                content: "Teste", 
                className: "eventos",
                popupID: "popup3"
            }               
        },      

      '8': { 
            '9': {
                content: "Teste", 
                className: "eventos",
                popupID: "popup5"
            }    

        },

      '11': { 
            '6': {
                content: "Teste", 
                className: "eventos",
                popupID: "popup6"
            }

        }
    }

}; 

$('#calendario').datepicker({
        beforeShowDay: function(date) {
        var d = date.getDate(),
            m = date.getMonth()+1,
            y = date.getFullYear();

        if (specialDays[y] && specialDays[y][m] && specialDays[y][m][d]) {
            var s = specialDays[y][m][d];
            return [true, s.className, s.content]; // selectable      
        }
        return [false,'']; // non-selectable  
    },
    onSelect: function(dateText, inst){
        var d = parseInt(dateText.split("/")[1], 10),
            m = parseInt(dateText.split("/")[0], 10),
            y = parseInt(dateText.split("/")[2], 10);

        if ( specialDays[y][m][d].hasOwnProperty("popupID") ) {
            var s = specialDays[y][m][d];
            $('#' + s.popupID).dialog({
               modal: true,

                minWidth: 150,
                minHeight: 150,
                maxWidth:500,
                maxHeight:350,
                position: ['center', 300],
                closeText: "Fechar",
                draggable: false,
            });
        }else{

        $('#popup').find('.date').text(dateText).end()

            .dialog({
                modal: true,

                minWidth: 150,
                minHeight: 150,
                maxWidth:500,
                maxHeight:350,
                position: ['center'],
                closeText: "Fechar",
                draggable: false,

            });
        }
    }

        }); 


});
4

1 に答える 1

1

推測する必要がある場合は、jQuery UI を安全にロードしていないためです。メイン ページが HTTPS で読み込まれている場合、ブラウザは HTTPS 以外の要素の読み込みをブロックします。

Googleなどの HTTPS を提供する場所から jQuery UI をロードする(jQuery 自体をロードする方法と同様) か、サーバーで自分でホストすることをお勧めします。

于 2013-05-12T21:34:48.797 に答える