我知道已经有很多类似的问题,但我仍然无法理解发生了什么。我对AJAX不是很熟悉,对javascript有非常基本的了解。
情景:
我有一个运行ajax的index.html页面和一个包含javascript(没有包含js文件)的文件(sub.html),它是sub.html中的手动编码的javascript。
示例:
(index.html的)
$('#content').load(pageurl + '#inner_content', function(){
//some code
});
(sub.html)
<script type="text/javascript">
(function($){
var interactive_chart_config = {
zoom_historical_default: [% chart_config.chart.chart_interactive.zoom_historical_default %],
zoom_intraday_default: [% chart_config.chart.chart_interactive.zoom_intraday_default %],
quotes_delay: [% ir.var.Config.format.quotes_delay %],
news_on_chart: {
[% news_types = chart_config.chart.chart_interactive.news_on_chart.keys %]
[% FOREACH news_type = news_types %]
[% news_type %]: {
[% news_options = chart_config.chart.chart_interactive.news_on_chart.${news_type}.keys %]
[% FOREACH news_option = news_options %]
[% news_option %]: [% chart_config.chart.chart_interactive.news_on_chart.${news_type}.${news_option} ? 'true' : 'false' %][% IF news_option != news_options.last %],[% END %]
[% END %]
}[% IF news_type != news_types.last %],[% END %]
[% END %]
},
modify_news: [
[% FOREACH news = chart_config.chart.chart_interactive.modify_news.news %]
{
[% FOREACH key = news.keys %]
[% key %]: '[% news.${key} %]'[% IF key != news.keys.last %],[% END %]
[% END %]
}[% IF news != chart_config.chart.chart_interactive.modify_news.news.last %],[% END %]
[% END %]
]
};
$(document).ready(function(){
$('#content_container').web_chart($.extend({}, {
theme : Highcharts.theme,
counter_code : "[%= stock_ids.first %]",
plot_on_load : true,
always_reload : true,
loading_indicator_id : 'loading_indicator',
chart_setting_id : 'chart_setting',
counter_list_form_id : 'counter_list_form',
chart_container_id : 'chart_container',
css_class_for_flags : {'N' : 'news_tooltip', 'I' : 'insider_trades_tooltip', 'C' : 'corporate_actions_tooltip'}
}, interactive_chart_config));
});
})(jQuery);
</script>
如何在index.html中使用AJAX执行sub.html的javascript?
希望你们能帮助我。提前谢谢。
答案 0 :(得分:1)
使用function
。
<script type="text/javascript>
function stuffFromSub() {
var foo = "I do stuff";
return foo;
}
</script>
然后在load()
$('#content').load(pageurl + '#inner_content', function(){
stuffFromSub()
});
答案 1 :(得分:0)
如果您正在尝试使用AJAX来检索包含javascript的页面,则需要在其上运行eval(),这将是一个很大的禁忌。
最好的解决方案是创建一个.js文件而不是.html文件,而是链接到它。将您想要运行的代码放入一个函数中,以便在需要时调用它。