を返すために正常に動作するMVC 4を使用していJavaScriptResult
ます。簡単なJavaScriptでテストしました。
ただし、getScript がブラウザに JavaScript を返すことは firebug で確認できますが、以下のコードは機能しません。
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Categories Page</title>
<script type='text/javascript' src='https://www.google.com/jsapi'></script>
<script src="~/Scripts/jquery-2.0.0.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$.getScript('http://localhost:53353/z/categories');
});
</script>
</head>
<body>
<h2>test</h2>
<div id="chart_div">
</div>
</body>
</html>
しかし、私が置き換えると:
$(document).ready(function () {
$.getScript('http://localhost:53353/z/categories');
});
.. が呼び出されたときにブラウザに返される JavaScript を使用するgetScript
と、コードは機能します。
が呼び出されたときに返される JavaScriptgetScript
は、Google 棒グラフを呼び出す標準の JavaScript です。getScript
これらを追加するため、返されるスクリプトでも script タグは省略されます。
問題は、getScript
返されたスクリプトをコピーして貼り付けてgetScript
セクションに置き換えるだけで、返されたスクリプトに欠陥がないことを確実に知ることができるのに、なぜ返されたスクリプトで窒息しているのかということです。作る?
わかった。MVC のことは忘れましょう。HTML (およびhttps://developers.google.com/chart/interactive/docs/gallery/barchartの例に基づく JavaScript ) を使用するだけで、次のように機能します。
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Categories Page</title>
<script type='text/javascript' src='https://www.google.com/jsapi'></script>
<script src="scripts/jquery-2.0.0.js"></script>
<script type="text/javascript" src="scripts/testscript.js"></script>
</head>
<body>
<h2>test</h2>
<div id="chart_div">
</div>
</body>
</html>
testscript.js には以下のみが含まれます。
google.load('visualization', '1', { packages: ['corechart'] });
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Year', 'Sales', 'Expenses'],
['2004', 1000, 400],
['2005', 1170, 460]
]);
var options = { title: 'Company Performance', vAxis: { title: 'Year', titleTextStyle: { color: 'red' } } };
var chart = new google.visualization.BarChart(document.getElementById('chart_div')); chart.draw(data, options); }
しかし、ここで行を書き直すと...
<script type="text/javascript" src="scripts/testscript.js"></script>
なので...
<script type="text/javascript">
$(document).ready(function () {
$.getScript('scripts/testscript.js');
});
</script>
...Firebug の Response で testscript.js の内容を確認できるにもかかわらず、ブラウザーがハングするだけです。testscript.js の内容を次のような単純なものにalert('hello');
置き換えるだけで、getScript は問題なく動作しますが、上記の testscript.js と getScript のような複雑なものは動作しなくなります。