记录几个javascript有关的小细节

  很多很多的事都容易在不经意间忘却,所以我选择记录下来。

  Firefox 不支持 obj.innerText 属性。

  obj.innerText alert()显示的值是 undefined。

  Firefox 支持 innerHTML 属性却不支持 innerText,如果不想用innerHTML 替代,可以用如下代码

  由于Firefox不支持document.all,所以考虑兼容的时候获取对象通常用 document.getelementbyid('yourid').

  if (document.all) {  //如果不是IE

  //也可以用 if(navigator.appName.indexOf("Explorer") > -1) // obj.innerText = "myText";}else { obj.textContent = "yourtext"; 用textContent 替代

  }

  Firefox、IE兼容的复制到剪贴板 javascript 代码

  这个函数使用在Firefox下时需要修改一个配置:

  1.打开firefox ,在地址栏中输入: about:config

  2.找到signed.applets.codebase_principal_support,将值设置为true

  function copyToClipboard(txt) {

  if(window.clipboardData)

  {

  window.clipboardData.clearData();

  window.clipboardData.setData(Text, txt);

  }

  else if(navigator.userAgent.indexOf(Opera) != -1)

  {

  window.location = txt;

  }

  else if (window.netscape)

  {

  try {

  netscape.security.PrivilegeManager.enablePrivilege(UniversalXPConnect);

  }

  catch (e)

  {

  alert(!!被浏览器拒绝!\n请在浏览器地址栏输入'about:config'并回车\n然后将'signed.applets.codebase_principal_support'设置为'true');

  }

  var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);

  if (!clip)

  return;

  var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);

  if (!trans)

  return;

  trans.addDataFlavor('text/unicode');

  var str = new Object();

  var len = new Object();

  var str = Components.classes[@mozilla.org/supports-string;1].createInstance(Components.interfaces.nsISupportsString);

  var copytext = txt;

  str.data = copytext;

  trans.setTransferData(text/unicode,str,copytext.length*2);

  var clipid = Components.interfaces.nsIClipboard;

  if (!clip)

  return false;

  clip.setData(trans,null,clipid.kGlobalClipboard);

  }

  return true;

  }

  或者用下面这段代码,功能相同。

  function CopyToClipboard(meintext)

  {

  if (window.clipboardData)

  {

  // the IE-manier

  window.clipboardData.setData("Text", meintext);

  }

  else if (window.netscape)

  {

  // dit is belangrijk maar staat nergens duidelijk vermeld:

  // you have to sign the code to enable this, or see notes below

  netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');

  // maak een interface naar het clipboard

  var clip = Components.classes['@mozilla.org/widget/clipboard;1']

  .createInstance(Components.interfaces.nsIClipboard);

  if (!clip) return;

  //alert(clip);

  // maak een transferable

  var trans = Components.classes['@mozilla.org/widget/transferable;1']

  .createInstance(Components.interfaces.nsITransferable);

  if (!trans) return;

  // specificeer wat voor soort data we op willen halen; text in dit geval

  trans.addDataFlavor('text/unicode');

  // om de data uit de transferable te halen hebben we 2 nieuwe objecten

  // nodig om het in op te slaan

  var str = new Object();

  var len = new Object();

  var str = Components.classes["@mozilla.org/supports-string;1"]

  .createInstance(Components.interfaces.nsISupportsString);

  var copytext=meintext;

  str.data=copytext;

  trans.setTransferData("text/unicode",str,copytext.length*2);

  var clipid=Components.interfaces.nsIClipboard;

  if (!clip) return false;

  clip.setData(trans,null,clipid.kGlobalClipboard);

  }

  else

  {

  return false;

  }

  alert("您已经复制: " + meintext);

  return false;

  }

  用javascript获取客户端电脑名

  前几天学习php的时候想实现获取客户端电脑名,在asp及.net下都有实现的例子,但一直没找到办法php下实现的方法。后来在国外的论坛里找到了一些代码,是javascript的。但只能运行于IE环境,而且必须把安全级别设置得相当低才可以。

  try

  {

  var ax = new ActiveXObject("WScript.Network");

  document.write('User: ' + ax.UserName + '<br />');

  document.write('Computer: ' + ax.ComputerName + '<br />');

  }

  catch (e)

  {

  document.write('访问当前电脑名操作被拒绝'+ '<br />');

  }