私はJQueryの初心者です。ダイアログ ボックスを使用して、外部サイトのページを表示するウィンドウをポップアップ表示しています。
<script type="text/javascript">
$.fx.speeds._default = 400;
jQuery.support.cors = true;
$(function ()
{
$("#cmdLaunchInDiv").click(function ()
{
$("#dialog-modal").dialog({
autoOpen: false,
height: 845,
width: 820,
show: "scale",
hide: "scale"
});
$.ajax({
url: 'http://www.mycompany.com/geturl/?userid=' + document.getElementById("txtUserId").value,
dataType: 'json',
success: function (data)
{
$('#dialog-modal').html("<iframe id='iFr' style='height:800; width:800; overflow: hidden;' height='800' width='800' scrolling='no' src='" + data + "'>");
}
});
$("#dialog-modal").dialog("open");
return false;
});
});
<div id="dialog-modal" title="My Page" >
</div>
Ajax 呼び出しは、ユーザー ID に基づいてロードする URL を取得します。行 jQuery.support.cors = true; を使用しない場合 Ajax呼び出しが機能しません。なぜ行がその問題を修正したのかわかりませんが、私の検索では修正されることが示唆されました。
問題は、最初にページを実行したときにすべて正常に動作することです。ユーザーIDを入力してボタンをクリックすると、divが開き、ページが期待どおりに読み込まれます。次に、ダイアログ ボックスの右上にある組み込みの閉じる X を使用してダイアログを閉じると、ボックスが期待どおりに閉じます。ただし、ダイアログを再度開こうとすると、JQuery-1.8.0.js でエラーが発生します。
Microsoft JScript ランタイム エラー: '配列' が定義されていません
// Save a reference to some core methods
core_push = Array.prototype.push, //<=== This line
core_slice = Array.prototype.slice,
core_indexOf = Array.prototype.indexOf,
core_toString = Object.prototype.toString,
core_hasOwn = Object.prototype.hasOwnProperty,
問題が何であるかを見つけるのに役立つものを見つけることができず、Jquery を何度も書き直しました。
更新: このエラーは IE9 にあります。Chrome と Firefox では、ダイアログ ボックスは正しく開いたり閉じたりしますが、同じドメインでページを読み込もうとしている場合を除き、コンテンツは表示されません。
誰かが私を正しい方向に向けることができますか?
どうもありがとう
フレッド