在script所在位置插入内容

  上一篇文章document.write()的一些坑说了浏览器输出流关闭后使用document.write会清空当前页面,因此要避免在window.onload、$(document).ready()和ajax获取数据后使用document.write插入内容。但是这些常用操作又是很难避免的,那么在使用上述三种方法的时候能不能达到document.write()同样的效果呢?

  其实是可以的实现的,我们知道js中除了可以用docuemnt.write插入内容,还可以使用appendChild,利用appendChild向子节点末尾插入新节点的特性,我们可以获取包含当前script节点的父元素,然后添加到子节点末尾。由于页面正在加载中,此时添加的子节点会在当前script节点后面。那么这里的重点就是获取包含当前js的父元素,不过在js中貌似没有直接的办法获取父元素,这里可以使用一个比较巧妙的办法。执行当前js时,文档流正加载到当前script节点,那么它必然是文档中最后一个节点,通过获取文档中的script节点,然后取最后一个节点即时当前script节点。获取了script节点后,只有直接使用parentNode就能获取它的父元素,贴下这段代码:

var script = document.getElementsByTagName("script"),
     len = script.length,
     parent = script[len-1].parentNode;

parent.appendChild(childNode);
时间: 2024-08-12 18:41:38

在script所在位置插入内容的相关文章

JQuery在光标位置插入内容

1 (function($) { 2 $.fn.extend({ 3 insertAtCaret: function(myValue) { 4 var $t = $(this)[0]; 5 //IE 6 if (document.selection) { 7 this.focus(); 8 sel = document.selection.createRange(); 9 sel.text = myValue; 10 this.focus(); 11 } else 12 //!IE 13 if

利用RandomAccessFile类在指定文件指定位置插入内容

package File; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.RandomAccessFile; /*利用RandomAccessFile类在指定文件指定位置插入内容.*/ public class InsertContent { public static void ins

关于文本输入框获取光标位置以及指定位置插入内容

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script> </head> <body> &l

EditText插入表情(字符串)到光标所在位置

获取EditText组件 [java] view plaincopy EditText etWeiboContent = (EditText) findViewById(R.id.et_content); 将表情转换成文本 [java] view plaincopy EmoticonsUtil mEmoticons = new EmoticonsUtil(this); CharSequence emoticonsText = mEmoticons.replace(mEmoticons.getEm

android EditText插入字符串到光标所在位置

EditText mTextInput=(EditText)findViewById(R.id.input);//EditText对象 int index = mTextInput.getSelectionStart();//获取光标所在位置 String text="I want to input str"; Editable edit = mTextInput.getEditableText();//获取EditText的文字 if (index < 0 || index &

【重要重要】如何在div是contentEditable=true的里面获取光标的位置,并在光标位置处插入内容。焦点位置插入指定内容

为什么要在contentEditable=true的div里面获取光标呢?因为这篇文章https://blog.csdn.net/qq_33769914/article/details/85002918我们知道想在一个内容里面插入一个新的内容,如果这个新的内容是段html代码.最后显示的是有样式的.那么用input是无法实现的. 所以我们考虑用contentEditable=true的div.在这里面输入的html就没问题啦.————————————————版权声明:本文为CSDN博主「夏天想」

将richTextBox中的内容写入txt文件发现不换行(解决方法),在richTextBox指定位置插入文字

string pathname = dt.ToString().Replace(":", ""); string str = richTextBoxResult.Text; str = str.Replace("\n", "\r\n");     //关键 File.AppendAllText(@"D:\" + pathname + ".txt", str, Encoding.Defau

用js控制按钮时间,将指定内容添加到文本域的光标所在位置。

<pre class="javascript" name="code"> var fm = document.getElementsByTagName('form')[0]; var button = document.getElementsByName("button"); //获取一个cookie的值 function getCookie(index){ var allcookies = document.cookie; var

可编辑div 获取光标位置及插入内容

<!DOCTYPE html> <html> <title>Div 光标位置 插入 文字 或 HTML</title> <script language="javascript" type="text/javascript"> var range; function getPos() { range = window.getSelection().getRangeAt(0);//找到焦点位置 var spa