如何在文本字段输入上执行javascript函数并使用新值更新字段

时间:2018-01-18 03:26:25

标签: javascript

我使用javascript函数在iframe标记中查找src字符串并返回找到的src字符串,它可以单独正常工作,但我需要在文本输入字段上使用它来获取输入粘贴上的iframe src,并使用函数返回的新值更新相同的字段。

搜索功能正常运行

function findSrc(str, pointa, pointb) 
{
  var str = " "+str;
  var pa = str.indexOf(pointa);

  if( pa == 0 ) return "";
  pa += pointa.length;
  var pb = str.indexOf(pointb,pa) - pa;

  return str.substr(pa,pb);
}

用于文本字段但在控制台中没有错误消息的方法

var fld = document.getElementById('textfield');
var src = fld.value;
fld.oninput = function() {
  if( src.indexOf('<iframe') != -1 ) {
    fld.value = findSrc(src, 'src="', '"');
  }
}

HTML

<input type="text" id="textfield" name="embedsrc" size="50" value="" />

实现目标的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

我使用以下方法,但如果有更好或更有效的方法,请通知。

相同的字符串搜索功能

function findSrc(str, pointa, pointb) 
{
  var str = " "+str;
  var pa = str.indexOf(pointa);

  if( pa == 0 ) return "";
  pa += pointa.length;
  var pb = str.indexOf(pointb,pa) - pa;

  return str.substr(pa,pb);
}

创建了一个新功能

function getsrc() 
{
  var fld = document.getElementById('textfield');
  var src = fld.value;
  if( src.indexOf("<iframe") != -1 ) {
    fld.value = findSrc(src, 'src="', '"');
  }
}

HTML 将addEventListener附加到字段并回调到新函数

<input id="textfield" name="frmsrc" type="text" size="50" value="" />
<script>
document.getElementById("textfield").addEventListener("input", getsrc);
</script>