diff --git a/src/en/xkcd/build.gradle b/src/en/xkcd/build.gradle
index 5e0c39659..5287edba3 100644
--- a/src/en/xkcd/build.gradle
+++ b/src/en/xkcd/build.gradle
@@ -5,7 +5,7 @@ ext {
     extName = 'xkcd'
     pkgNameSuffix = 'en.xkcd'
     extClass = '.Xkcd'
-    extVersionCode = 8
+    extVersionCode = 9
     libVersion = '1.2'
 }
 
diff --git a/src/en/xkcd/src/eu/kanade/tachiyomi/extension/en/xkcd/Xkcd.kt b/src/en/xkcd/src/eu/kanade/tachiyomi/extension/en/xkcd/Xkcd.kt
index 4e7347f21..bb2480f4b 100644
--- a/src/en/xkcd/src/eu/kanade/tachiyomi/extension/en/xkcd/Xkcd.kt
+++ b/src/en/xkcd/src/eu/kanade/tachiyomi/extension/en/xkcd/Xkcd.kt
@@ -59,12 +59,22 @@ class Xkcd : ParsedHttpSource() {
     override fun pageListParse(document: Document): List<Page> {
         val titleWords: Sequence<String>
         val altTextWords: Sequence<String>
+        val interactiveText = listOf(
+            "To experience the", "interactive version of this comic,",
+            "open it in WebView/browser."
+        )
+            .joinToString(separator = "%0A")
+            .replace(" ", "%20")
 
         // transforming filename from info.0.json isn't guaranteed to work, stick to html
         // if an HD image is available it'll be the srcset attribute
+        // if img tag is empty then it is an interactive comic viewable only in browser
         val image = document.select("div#comic img").let {
-            if (it.hasAttr("srcset")) it.attr("abs:srcset").substringBefore(" ")
-            else it.attr("abs:src")
+            when {
+                it == null || it.isEmpty() -> baseAltTextUrl + interactiveText + baseAltTextPostUrl
+                it.hasAttr("srcset") -> it.attr("abs:srcset").substringBefore(" ")
+                else -> it.attr("abs:src")
+            }
         }
 
         // create a text image for the alt text