AJAX请求替换整个页面标记
Entire page markup is replaced on AJAX request
当我在js.erb
模板中调用函数时,它会替换整个页面,而不仅仅是我指示的div
。有人能帮忙吗?
删除.js.erb
$('div.mini-basket-wrapper').html("<%= j(render 'shop/baskorder/mini_basket') %>");
#This replaces the page completely
$('#basket-info').load(document.write(basket_text()));
视图
<div id="basket-info">
<div id="basket-amount">
<div class='mini-basket-icon'>
<%= image_tag 'shop/icons/basket.svg', alt: '' %>
</div>
<script type='text/javascript'>
document.write(basket_text());
</script>
</div>
</div>
JS
function fc_basket_text_from_cookie(empty_text, normal_text)
{
var basket = readCookie('bk');
if (basket)
{
var parts = decodeURIComponent(basket.replace(/'+/g, '%20')).split('|')
if (parseInt(parts[1]) == 0)
return normal_text.replace(/##VALUE##/g, parts[0]).replace(/##ITEMS##/g, parseInt(parts[1]));
// return empty_text
else
return normal_text.replace(/##VALUE##/g, parts[0]).replace(/##ITEMS##/g, parseInt(parts[1]));
} else {
return '';
}
}
var emptyBasketHTML = "<span class='header_text'>Items in basket: 0 Total: £0.00</span>";
function basket_text(){
var populated = "<span class='header_text'>Items in basket: ##ITEMS##</span><span class='header_text'>Total: ##VALUE##</span>";
//populated += "<input type='submit' value='Checkout' name='commit' class='go_botton header-checkout-button'>"
return fc_basket_text_from_cookie(emptyBasketHTML,populated);
}
阅读此处:使用document.write.
页面加载完成后,文档将关闭。试图在其中写入文档.write将导致内容被擦除。
此外,.load()函数用于从服务器加载数据。我相信你想要.html函数。
[未测试]更改线路$('#basket-info').load(document.write(basket_text()));
至$('#basket-info').html(basket_text());
感谢您的输入。意识到我做错了什么,决定在我的js文件中添加一个关于成功的ajax:
$(document).on('ajaxSuccess', function(){
$('#basket-amount-info').html(basket_text());
});
添加了此id #basket-amount-info
以在视图中包含脚本。
相关文章:
- 无法从 jQuery RSS Feed 中的 localStorage 动态替换类
- 我如何找到一个句子中的所有空格并替换忽略它们
- ajax请求的顺序总是不同的
- Meteor如何接收HTTP请求
- 有没有一种方法可以防止img get请求使用css或js发生
- 请求返回 unicode 替换字符
- 主干-用一个请求替换整个集合
- AJAX请求替换整个页面标记
- 替换超链接默认操作以加载 AJAX 请求
- 为什么将 ng-select 替换为自定义指令会导致$http请求不会每隔一段时间发送一次
- Ajax 触发两次替换 Rails 4 中的最后一个请求内容
- jQuery - 合并 ajax 请求,因为它们被拆分并替换数据
- 如何在执行 AJAX 请求后停止 setInterval 运行,该请求将 DOM 中的该 setInterval 替换为
- 用请求承诺替换节点request.post
- 如何在AJAX请求后使用Jquery替换元素的文本
- 如果ajax完成,用请求的数据替换html
- Firefox插件SDK替换请求
- 替换浏览器中的URL路径,而不是请求中的路径
- 在页面加载之前将请求 URL 替换为 Safari 扩展
- Javascript - block image-request并将请求的img-url替换为另一个