以下函数将处理部分加载视图页面中的数据,并为脚本中的每个jQuery选择器添加指定的上下文。这个答案很好用。但是,它不支持外部脚本文件。
function renderPartialView(control, data){ // For detecting all script tag in loaded data. var reExtractscript = /(<script type="text/javascript">)([sS]+?)(</script>)/gi; // For detecting all "$" sign (must be jQuery object) in loaded data. var reFindDollarSign = /$(([S]+?))/gi; // Find all matched string in loaded data. var result = reExtractscript.exec(data); var allscript = ''; if (result) { for (i = 0; i < result.length; i += 4) { // Remove current script from loaded script. data = data.replace(result[i], ''); // Replace all "$" function by adding context parameter that is control. allscript += result[i+2].replace(reFindDollarSign, '$($1, "' + control + '")'); } } // Load non-script html to control. $(control).html(data); // evaluate all script that is found in loaded data. eval(allscript);}// This script will partially download view page from server in the same domain$(function(){ $.get(getUrl('~/Profile/Section/ViewEducation'), null, function(data) { // When partial loading is complete, all loaded data will be sent to “renderPartialView” function renderPartialView('#education-view', data); });});


