diff --git a/link.module b/link.module
index 676811b..88881a4 100644
--- a/link.module
+++ b/link.module
@@ -598,6 +598,9 @@ function link_theme() {
     'link_formatter_link_separate' => array(
       'variables' => array('element' => NULL),
     ),
+    'link_formatter_link_iframe' => array(
+      'variables' => array('element' => NULL),
+    ),
     'link_field' => array(
       'render element' => 'element',
     ),
@@ -766,10 +769,57 @@ function link_field_formatter_info() {
       'field types' => array('link_field'),
       'multiple values' => FIELD_BEHAVIOR_DEFAULT,
     ),
+    'link_iframe' => array(
+      'label' => t('Embedded iframe'),
+      'field types' => array('link_field'),
+      'multiple values' => FIELD_BEHAVIOR_DEFAULT,
+      'settings' => array(
+        'width' => '400',
+        'height' => '300',
+      ),
+    ),
   );
 }
 
 /**
+ * Implements hook_field_formatter_settings_form().
+ */
+function link_field_formatter_settings_form($field, $instance, $view_mode, $form, &$form_state) {
+  $display = $instance['display'][$view_mode];
+  $settings = $display['settings'];
+  $element = array();
+  if ($display['type'] == 'link_iframe') {
+    $element['width'] = array(
+      '#title' => t('Width'),
+      '#type' => 'textfield',
+      '#size' => 10,
+      '#default_value' => $settings['width'],
+      '#element_validate' => array('element_validate_integer_positive'),
+      '#required' => TRUE,
+    );
+    $element['height'] = array(
+      '#title' => t('Height'),
+      '#type' => 'textfield',
+      '#size' => 10,
+      '#default_value' => $settings['height'],
+      '#element_validate' => array('element_validate_integer_positive'),
+      '#required' => TRUE,
+    );
+  }
+  return $element;
+}
+
+/**
+ * Implements hook_field_formatter_settings_summary().
+ */
+function link_field_formatter_settings_summary($field, $instance, $view_mode) {
+  $display = $instance['display'][$view_mode];
+  $settings = $display['settings'];
+  $summary = $display['type'] == 'link_iframe' ? 'width=' . $settings['width'] . ' height=' . $settings['height'] : '';
+  return $summary;
+}
+
+/**
  * Implements hook_field_formatter_view().
  */
 function link_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
@@ -896,6 +946,15 @@ function theme_link_formatter_link_separate($vars) {
   return $output;
 }
 
+/**
+ * Theme function for 'iframe' link field formatter.
+ */
+function theme_link_formatter_link_iframe($vars) {
+  return sprintf('<iframe width="%d" height="%d" src="%s" frameborder="0" allowfullscreen></iframe>',
+    $vars['field']['display']['default']['settings']['width'],
+    $vars['field']['display']['default']['settings']['height'],
+    $vars['element']['url']);
+}
 
 function link_token_list($type = 'all') {
   if ($type === 'field' || $type === 'all') {
