超全模态模型 × Harness 升级,升级解锁 ArkClaw,最新支持 DeepSeek-V4 系列与 GLM-5.1
我之前也碰到过类似的情况,浏览器对<object>这类嵌入元素的DOM操作确实有点“敏感”,拖拽移动节点很容易导致它丢失渲染状态。咱们一步步来排查和解决:
<object>
data
这是最直接的方法,在拖拽结束时,重新设置<object>的data属性,触发PDF重新加载:
假设你的HTML结构是这样的:
<div class="draggable"> <object id="pdfViewer" data="sample.pdf" type="application/pdf" width="100%" height="300px"></object> </div>
如果用的是jQuery UI的draggable,可以修改代码为:
draggable
$(".draggable").draggable({ stop: function(event, ui) { const pdfObject = $("#pdfViewer"); // 先保存原路径 const pdfPath = pdfObject.attr("data"); // 清空再重新赋值,触发重新加载 pdfObject.attr("data", "").attr("data", pdfPath); } });
如果是自定义拖拽逻辑,就在拖拽结束的回调函数里执行这段重新赋值的代码即可。
如果不需要改变元素的DOM层级,只是实现视觉上的拖拽,可以用position:absolute修改top和left属性,而不是移动整个DOM节点——这样<object>不会被重新解析,自然不会丢失渲染状态:
position:absolute
top
left
// 初始化时设置定位 $(".draggable").css({ position: "absolute", cursor: "move" }); let isDragging = false; let startX, startY, initialX, initialY; $(".draggable").on("mousedown", function(e) { isDragging = true; startX = e.pageX; startY = e.pageY; initialX = parseInt($(this).css("left")) || 0; initialY = parseInt($(this).css("top")) || 0; }); $(document).on("mousemove", function(e) { if (!isDragging) return; const dx = e.pageX - startX; const dy = e.pageY - startY; $(".draggable").css({ left: initialX + dx, top: initialY + dy }); }); $(document).on("mouseup", function() { isDragging = false; });
这种方法完全不改动DOM结构,只是修改元素的位置样式,能最大程度避免<object>的渲染问题。
如果必须移动DOM节点,可以在拖拽开始时克隆一个不带<object>的占位元素,拖拽结束后再把原元素放回去并重新加载PDF:
$(".draggable").draggable({ helper: function() { // 创建一个和原div大小一致的占位符 return $(this).clone().empty().css({background: "#eee"}); }, stop: function(event, ui) { // 拖拽结束后,把原元素移动到目标位置 $(this).css({ left: ui.position.left, top: ui.position.top }); // 重新加载PDF const pdfObject = $(this).find("object"); const pdfPath = pdfObject.attr("data"); pdfObject.attr("data", "").attr("data", pdfPath); } });
内容的提问来源于stack exchange,提问作者siddaramesh
超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起
模型再升级,30秒超长叙事, 模态参考扩容
模型自由,工具不限,最新支持 Deepseek-V4 系列、GLM-5.3 系列
超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列
大模型19元起,Al应用9.9元畅享,新人首购爆款尽享优惠