Sha256: a054f303524a7df36a135a476ad7224c0a29781b1b500dde856445331ca290a0

Contents?: true

Size: 881 Bytes

Versions: 2

Compression:

Stored size: 881 Bytes

Contents

# backtick_javascript: true

module Browser; module DOM

class Element < Node
  # @!attribute editable
  # @return [Boolean?] the value of contentEditable for this element
  def editable
    case `#@native.contentEditable`
    when "true"
      true
    when "false"
      false
    when "inherit"
      nil
    end
  end

  def editable=(value)
    value = case value
    when true
      "true"
    when false
      "false"
    when nil
      "inherit"
    end
    `#@native.contentEditable = #{value}`
  end

  def editable?
    `#@native.isContentEditable`
  end

  # Execute a contentEditable command
  def edit(command, value=nil)
    command = command.gsub(/_./) { |i| i[1].upcase }
    
    focus

    if value
      `#{document}.native.execCommand(#{command}, false, #{value})`
    else
      `#{document}.native.execCommand(#{command}, false)`
    end
  end
end

end; end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
opal-browser-0.3.5 opal/browser/dom/element/editable.rb
opal-browser-0.3.4 opal/browser/dom/element/editable.rb